Si vous utilisez le modèle MFC VS08 ActiveX, vous pouvez voir un extrait comme celui-ci dans le fichier .h de votre commande (dans la déclaration de classe, il est protégé):
afx_msg void AboutBox();
DECLARE_DISPATCH_MAP()
Et l'un comme celui-ci dans le fichier .cpp:
// Dispatch map
BEGIN_DISPATCH_MAP(CActiveXOutlookCtrl, COleControl)
DISP_FUNCTION_ID(yourCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
END_DISPATCH_MAP()
Je n'ai jamais eu à utiliser ceci, mais c'est votre interface de répartition - autrement dit les méthodes sur votre objet que les autres peuvent appeler. Qu'est-ce que cela signifie:
- "AboutBox" est le nom qu'ils utilisent pour l'appeler.
- DISPID_ABOUTBOX est un identifiant entier pour la fonction (je pense que c'est arbitraire, j'utiliserais un nombre positif car beaucoup de négatifs sont pris par défaut). AboutBox est le nom de la méthode.
- VT_EMPTY est le type de retour de la méthode.
- VTS_NONE est le type de paramètres requis.
Il y a aussi DECLARE_MESSAGE_MAP() et DECLARE_EVENT_MAP(), qui pourraient être à propos de ce que vous voulez aussi.
une correction triviale, DECLARE_DISPATCH_MAP() doit suivre la déclaration de la fonction. –