Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Enregistre la classe de contrôle avec la base de données d'inscription Windows.
BOOL AFXAPI AfxOleRegisterControlClass(
HINSTANCE hInstance,
REFCLSID clsid,
LPCTSTR pszProgID,
UINT idTypeName,
UINT idBitmap,
int nRegFlags,
DWORD dwMiscStatus,
REFGUID tlid,
WORD wVerMajor,
WORD wVerMinor
);
Paramètres
hInstance
Handle d'instance du module associé à la classe de contrôle.clsid
L'ID de classe du contrôle.pszProgID
L'ID de programme du contrôle.idTypeName
L'ID de ressource de la chaîne contenant un nom utilisateur-lisible de type pour le contrôle.idBitmap
L'ID de ressource de la bitmap représentant le contrôle OLE dans une barre d'outils ou une palette.nRegFlags
Contient un ou plusieurs des indicateurs suivants :afxRegInsertable permet au contrôle apparaisse dans la boîte de dialogue d'objet d'insertion pour les objets OLE.
afxRegApartmentThreading définit le modèle de thread dans le Registre à ThreadingModel=Apartment.
afxRegFreeThreading définit le modèle de thread dans le Registre à ThreadingModel=Free.
Vous pouvez combiner les deux balises afxRegApartmentThreading et afxRegFreeThreading pour définir ThreadingModel=Both.Consultez l' InprocServer32 dans Kit de développement logiciel Windows pour plus d'informations sur l'inscription du modèle de thread.
[!REMARQUE]
Dans les versions MFC avant MFC 4,2, le paramètre d' intnRegFlags était un paramètre de BOOL , bInsertable, qui autorise ou refusait le contrôle à insérer de la boîte de dialogue d'objet d'insertion.
dwMiscStatus
Contient un ou plusieurs des indicateurs suivants d'état (pour une description des indicateurs, consultez l'énumération d' OLEMISC dans Kit de développement logiciel Windows) :OLEMISC_RECOMPOSEONRESIZE
OLEMISC_ONLYICONIC
OLEMISC_INSERTNOTREPLACE
OLEMISC_STATIC
OLEMISC_CANTLINKINSIDE
OLEMISC_CANLINKBYOLE1
OLEMISC_ISLINKOBJECT
OLEMISC_INSIDEOUT
OLEMISC_ACTIVATEWHENVISIBLE
OLEMISC_RENDERINGISDEVICEINDEPENDENT
OLEMISC_INVISIBLEATRUNTIME
OLEMISC_ALWAYSRUN
OLEMISC_ACTSLIKEBUTTON
OLEMISC_ACTSLIKELABEL
OLEMISC_NOUIACTIVATE
OLEMISC_ALIGNABLE
OLEMISC_IMEMODE
OLEMISC_SIMPLEFRAME
OLEMISC_SETCLIENTSITEFIRST
tlid
ID unique de la classe de contrôle.wVerMajor
Numéro de version principale de la classe de contrôle.wVerMinor
Le numéro de version secondaire de la classe de contrôle.
Valeur de retour
Une valeur différente de zéro si la classe de contrôle a été enregistrée ; sinon 0.
Notes
Cela permet le contrôle à utiliser par les conteneurs qui sont contrôle OLE fuseaux horaires.AfxOleRegisterControlClass met à jour le Registre avec le nom et l'emplacement du contrôle sur le système et définit également le modèle de thread que le contrôle prend en charge dans le Registre.Pour plus d'informations, consultez note technique 64, « threading de modèle appartement dans les contrôles OLE, » et le Sur les processus et les threads dans Kit de développement logiciel Windows.
Exemple
// Member function implementation of class COleObjectFactory::UpdateRegistry
//
BOOL CMyAxCtrl::CMyAxCtrlFactory::UpdateRegistry(BOOL bRegister)
{
// TODO: Verify that your control follows apartment-model threading rules.
// Refer to MFC TechNote 64 for more information.
// If your control does not conform to the apartment-model rules, then
// you must modify the code below, changing the 6th parameter from
// afxRegInsertable | afxRegApartmentThreading to afxRegInsertable.
if (bRegister)
return AfxOleRegisterControlClass(
AfxGetInstanceHandle(),
m_clsid,
m_lpszProgID,
IDS_NVC_MFCAXCTL,
IDB_NVC_MFCAXCTL,
afxRegInsertable | afxRegApartmentThreading,
_dwMyOleMisc,
_tlid,
_wVerMajor,
_wVerMinor);
else
return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
}
L'exemple ci-dessus montre comment AfxOleRegisterControlClass est appelé avec l'indicateur pour insérable et la balise pour le modèle cloisonné ORed ensemble pour créer du sixième paramètre :
afxRegInsertable | afxRegApartmentThreading,
Le contrôle s'affiche dans la boîte de dialogue d'objet d'insertion pour les conteneurs actifs, et ce sera apartment modèle-averti.Les contrôles modèle-avertis d'apartment (cloisonné) doivent garantir que les données de classe statique est protégée par des verrous, afin que bien qu'un contrôle dans un " apartment " accède aux données statiques, il ne soit pas désactivée par le planificateur avant qu'elle ne soit terminée, et une autre instance de les mêmes classe démarre en utilisant les mêmes données statiques.Tous les accès aux données statiques sont entourés par le code de section critique.
Configuration requise
Header:<afxctl.h>
Voir aussi
Référence
AfxOleRegisterPropertyPageClass