Article ID: 179691
Article Last Modified on 6/2/2005
DISP_FUNCTION_ID() DISP_PROPERTY_ID() DISP_PROPERTY_NOTIFY_ID() DISP_PROPERTY_EX_ID() DISP_PROPERTY_PARAM_ID()These macros can be useful in maintaining existing DISPID numbering.
////////////////////////////////////////////////////////////////////////
// Dispatch map:
BEGIN_DISPATCH_MAP(CTestCtrl, COleControl)
//{{AFX_DISPATCH_MAP(CTestCtrl)
DISP_PROPERTY_NOTIFY(CTestCtrl, "Property1", m_property1,
OnProperty1Changed, VT_I2)
DISP_PROPERTY_EX(CTestCtrl, "Property2", GetProperty2,
SetProperty2, VT_I2)
DISP_FUNCTION(CTestCtrl, "Method1", Method1, VT_I2, VTS_I2)
DISP_FUNCTION(CTestCtrl, "Method2", Method2, VT_I4, VTS_NONE)
//}}AFX_DISPATCH_MAP
DISP_FUNCTION_ID(CTestCtrl, "AboutBox", DISPID_ABOUTBOX,
AboutBox, VT_EMPTY, VTS_NONE)
END_DISPATCH_MAP()
Here is the same dispatch map using the DISP_XXX_ID macros to specify
specific DISPIDs:
////////////////////////////////////////////////////////////////////////
// Dispatch map:
BEGIN_DISPATCH_MAP(CTestCtrl, COleControl)
//{{AFX_DISPATCH_MAP(CTestCtrl)
//}}AFX_DISPATCH_MAP
DISP_PROPERTY_NOTIFY_ID(CTestCtrl, "Property1", 1,
m_property1, OnProperty1Changed, VT_I2)
DISP_PROPERTY_EX_ID(CTestCtrl, "Property2", 2, GetProperty2,
SetProperty2, VT_I2)
DISP_FUNCTION_ID(CTestCtrl, "Method1", 3, Method1, VT_I2, VTS_I2)
DISP_FUNCTION_ID(CTestCtrl, "Method2", 4, Method2, VT_I4, VTS_NONE)
DISP_FUNCTION_ID(CTestCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox,
VT_EMPTY, VTS_NONE)
END_DISPATCH_MAP()
Additional query words: dispinterface Idispatch
Keywords: kbtshoot kbprb kbwizard kbpending kbcode KB179691