Snap-In Object Macros
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Snap-In Object Macros.
These macros provide support for snap-in extensions.
| BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP | Marks the beginning of the snap-in extension data class map for a Snap-In object. |
| BEGIN_SNAPINTOOLBARID_MAP | Marks the beginning of the toolbar map for a Snap-In object. |
| END_EXTENSION_SNAPIN_NODEINFO_MAP | Marks the end of the snap-in extension data class map for a Snap-In object. |
| END_SNAPINTOOLBARID_MAP | Marks the end of the toolbar map for a Snap-In object. |
| EXTENSION_SNAPIN_DATACLASS | Creates a data member for the data class of the snap-in extension. |
| EXTENSION_SNAPIN_NODEINFO_ENTRY | Enters a snap-in extension data class into the snap-in extension data class map of the Snap-In object. |
| SNAPINMENUID | Declares the ID of the context menu used by the Snap-In object. |
| SNAPINTOOLBARID_ENTRY | Enters a toolbar into the toolbar map of the Snap-In object. |
Marks the beginning of the snap-in extension data class map.
BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP(classname)
Parameters
classname
[in] The name of the snap-in extension data class.
Remarks
Start your snap-in extension map with the BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP macro, add entries for each of your snap-in extension data types with the EXTENSION_SNAPIN_NODEINFO_ENTRY macro, and complete the map with the END_EXTENSION_SNAPIN_NODEINFO_MAP macro.
Example
class CMyExtSnapinExtData : public CSnapInItemImpl<CMyExtSnapinExtData>, public CMySnapinBase { public: CMyExtSnapinExtData() {} }; class CMyExtSnapin : public CComObjectRoot, public CSnapInObjectRoot<1, CMyExtSnapin>, public IComponentDataImpl<CMyExtSnapin, CMyExtSnapin> { public: CMyExtSnapin() {} BEGIN_COM_MAP(CMyExtSnapin) END_COM_MAP() EXTENSION_SNAPIN_DATACLASS(CMyExtSnapinExtData) BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP(CMyExtSnapin) EXTENSION_SNAPIN_NODEINFO_ENTRY(CMyExtSnapinExtData) END_EXTENSION_SNAPIN_NODEINFO_MAP() };
Declares the beginning of the toolbar ID map for the Snap-In object.
BEGIN_SNAPINTOOLBARID_MAP(_class)
Parameters
_class
[in] Specifies the Snap-In object class.
Example
class CMySnapinData : public CSnapInItemImpl<CMySnapinData>, public CMySnapinBase { public: CMySnapinData() {} BEGIN_SNAPINTOOLBARID_MAP(CMySnapinData) // IDR_MYSNAPINTOOLBAR is the resource ID of a toolbar resource. SNAPINTOOLBARID_ENTRY(IDR_MYSNAPINTOOLBAR) END_SNAPINTOOLBARID_MAP() };
Marks the end of the snap-in extension data class map.
END_EXTENSION_SNAPIN_NODEINFO_MAP()
Remarks
Start your snap-in extension map with the BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP macro, add entries for each of your extension snap-in data types with the EXTENSION_SNAPIN_NODEINFO_ENTRY macro, and complete the map with the END_EXTENSION_SNAPIN_NODEINFO_MAP macro.
Example
See the example for BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP.
Declares the end of the toolbar ID map for the Snap-In object.
END_SNAPINTOOLBARID_MAP(Â
_class Â)
Parameters
_class
[in] Specifies the Snap-In object class.
Example
See the example for BEGIN_SNAPINTOOLBARID_MAP.
Adds a data member to the snap-in extension data class for an ISnapInItemImpl-derived class.
EXTENSION_SNAPIN_DATACLASS(Â
dataClass Â)
Parameters
dataClass
[in] The data class of the snap-in extension.
Remarks
This class should also be entered into a snap-in extension data class map. Start your snap-in extension data class map with the BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP macro, add entries for each of your snap-in extension data types with the EXTENSION_SNAPIN_NODEINFO_ENTRY macro, and complete the map with the END_EXTENSION_SNAPIN_NODEINFO_MAP macro.
Example
class CMyExtSnapinExtData : public CSnapInItemImpl<CMyExtSnapinExtData>, public CMySnapinBase { public: CMyExtSnapinExtData() {} }; class CMyExtSnapin : public CComObjectRoot, public CSnapInObjectRoot<1, CMyExtSnapin>, public IComponentDataImpl<CMyExtSnapin, CMyExtSnapin> { public: CMyExtSnapin() {} BEGIN_COM_MAP(CMyExtSnapin) END_COM_MAP() EXTENSION_SNAPIN_DATACLASS(CMyExtSnapinExtData) BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP(CMyExtSnapin) EXTENSION_SNAPIN_NODEINFO_ENTRY(CMyExtSnapinExtData) END_EXTENSION_SNAPIN_NODEINFO_MAP() };
Adds a snap-in extension data class to the snap-in extension data class map.
EXTENSION_SNAPIN_NODEINFO_ENTRY(Â
dataClass Â)
Parameters
dataClass
[in] The data class of the snap-in extension.
Remarks
Start your snap-in extension data class map with the BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP macro, add entries for each of your snap-in extension data types with the EXTENSION_SNAPIN_NODEINFO_ENTRY macro, and complete the map with the END_EXTENSION_SNAPIN_NODEINFO_MAP macro.
Example
See the example for BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP.
Use this macro to declare the context menu resource of the Snap-In object.
SNAPINMENUID(Â
id Â)
Parameters
id
[in] Identifies the context menu of the Snap-In object.
Use this macro to enter a toolbar ID into the Snap-In object's toolbar ID map.
SNAPINTOOLBARID_ENTRY(Â
id Â)
Parameters
id
[in] Identifies the toolbar control.
Remarks
The BEGIN_SNAPINTOOLBARID_MAP macro marks the beginning of the toolbar ID map; the END_SNAPINTOOLBARID_MAP macro marks the end.
Example
See the example for BEGIN_SNAPINTOOLBARID_MAP.