AfxOleRegisterControlClass
Registry ovládání třídy s registrační databáze systému Windows.
BOOL AFXAPI AfxOleRegisterControlClass(
HINSTANCE hInstance,
REFCLSID clsid,
LPCTSTR pszProgID,
UINT idTypeName,
UINT idBitmap,
int nRegFlags,
DWORD dwMiscStatus,
REFGUID tlid,
WORD wVerMajor,
WORD wVerMinor
);
Parametry
hInstance
Popisovač instance přidružené k třídě ovládací modul.clsid
Jedinečný Identifikátor ovládacího prvku.pszProgID
Program jedinečný Identifikátor ovládacího prvku.idTypeName
ID zdroje řetězec, který obsahuje typ uživatelem čitelný název ovládacího prvku.idBitmap
ID zdroje rastrový obrázek představující ovládací prvek OLE v panelu nástrojů nebo v paletě.nRegFlags
Obsahuje jeden nebo více následujících příznaků:afxRegInsertableUmožňuje řídit v dialogovém okně Vložit objekt OLE objekty.
afxRegApartmentThreadingNastaví v registru ThreadingModel model podprocesu typu Apartment =.
afxRegFreeThreadingModel podprocesu nastaví v registru ThreadingModel = zdarma.
Můžete zkombinovat dva příznaky afxRegApartmentThreading a afxRegFreeThreading nastavit ThreadingModel = I.Viz InprocServer32 v Windows SDK Další informace o registraci model podprocesů.
[!POZNÁMKA]
MFC verze před MFC 4.2 intnRegFlags parametr byl BOOL parametr, bInsertable, který povoleno nebo zakázáno ovládacího prvku v dialogovém okně Vložit objekt vložit.
dwMiscStatus
Obsahuje jeden nebo více následujících příznaků: stav (Popis příznaků naleznete v tématu OLEMISC ve výčtu Windows SDK):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
Jedinečný Identifikátor třídy ovládacího prvku.wVerMajor
Hlavní číslo verze ovládacího prvku třídy.wVerMinor
Číslo podverze třídy řízení.
Vrácená hodnota
Nenulová hodnota, pokud je ovládací prvek třídy byla zapsána; jinak 0.
Poznámky
To umožňuje řídit pro kontejnery, které jsou OLE-control.AfxOleRegisterControlClassaktualizace registru s názvem ovládacího prvku a jeho umístění v systému a také nastaví model podprocesu, který podporuje ovládací prvek v registru.Další informace naleznete v Technická poznámka 64, "Model apartment, typ podprocesu v OLE prvky," a o procesů a podprocesů v Windows SDK.
Příklad
// 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);
}
Výše uvedený příklad ukazuje jak AfxOleRegisterControlClass je volána s příznakem pro vložitelný a příznak typu apartment modelu sloučeny pomocí operátoru OR dohromady a vytvořit šestého parametr:
afxRegInsertable | afxRegApartmentThreading,
Ovládací prvek se zobrazí v dialogovém okně Vložit objekt povoleno kontejnerů a bude podporující model typu apartment.Ovládací prvky podporující model Apartment musí statické třídy, data jsou chráněna zámky, zajistit, aby při řízení v jedné apartment přistupuje k statická data, to není zakázáno plánovačem před dokončením a spustí další instance stejné třídy pomocí stejného statická data.Všechny přístupy k statická data bude ohraničena kritické části kódu.
Požadavky
Záhlaví: <afxctl.h>
Viz také
Referenční dokumentace
AfxOleRegisterPropertyPageClass