Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sınıflar CObject ve CRuntimeClass çalışma zamanı sınıf bilgilerine erişim, serileştirme ve dinamik nesne oluşturma gibi çeşitli nesne hizmetlerini kapsüller. Bu işlevden CObject türetilen tüm sınıflar devralır.
Çalışma zamanı sınıf bilgilerine erişim, çalışma zamanında bir nesnenin sınıfı hakkındaki bilgileri belirlemenize olanak tanır. Çalışma zamanında bir nesnenin sınıfını belirleme özelliği, işlev bağımsız değişkenlerinin ek tür denetimine ihtiyacınız olduğunda ve bir nesnenin sınıfını temel alan özel amaçlı kod yazmanız gerektiğinde kullanışlıdır. Çalışma zamanı sınıf bilgileri doğrudan C++ dili tarafından desteklenmez.
Serileştirme, bir nesnenin içeriğini dosyaya veya dosyadan yazma veya okuma işlemidir. Uygulama çıktıktan sonra bile bir nesnenin içeriğini depolamak için serileştirmeyi kullanabilirsiniz. Daha sonra uygulama yeniden başlatıldığında nesne dosyadan okunabilir. Bu tür veri nesnelerinin "kalıcı" olduğu söylenir.
Dinamik nesne oluşturma, çalışma zamanında belirtilen bir sınıfın nesnesini oluşturmanıza olanak tanır. Örneğin, çerçevenin bunları dinamik olarak oluşturması gerektiğinden, belge, görünüm ve çerçeve nesneleri dinamik oluşturmayı desteklemelidir.
Aşağıdaki tabloda çalışma zamanı sınıf bilgilerini, serileştirmeyi ve dinamik oluşturmayı destekleyen MFC makroları listelenir.
Bu çalışma zamanı nesne hizmetleri ve serileştirme hakkında daha fazla bilgi için Sınıf: Çalışma Zamanı Sınıf Bilgilerine Erişme makalesine CObject bakın.
Çalışma Zamanı Nesne Modeli Hizmetleri Makroları
| Veri Akışı Adı | Açıklama |
|---|---|
DECLARE_DYNAMIC |
Çalışma zamanı sınıf bilgilerine erişimi etkinleştirir (sınıf bildiriminde kullanılmalıdır). |
DECLARE_DYNCREATE |
Dinamik oluşturma ve çalışma zamanı sınıf bilgilerine erişim sağlar (sınıf bildiriminde kullanılmalıdır). |
DECLARE_SERIAL |
Serileştirmeyi ve çalışma zamanı sınıf bilgilerine erişimi etkinleştirir (sınıf bildiriminde kullanılmalıdır). |
IMPLEMENT_DYNAMIC |
Çalışma zamanı sınıf bilgilerine erişimi etkinleştirir (sınıf uygulamasında kullanılmalıdır). |
IMPLEMENT_DYNCREATE |
Dinamik oluşturma ve çalışma zamanı bilgilerine erişim sağlar (sınıf uygulamasında kullanılmalıdır). |
IMPLEMENT_SERIAL |
Serileştirmeye ve çalışma zamanı sınıf bilgilerine erişime izin verir (sınıf uygulamasında kullanılmalıdır). |
RUNTIME_CLASS |
CRuntimeClass Adlandırılmış sınıfa karşılık gelen yapıyı döndürür. |
OLE genellikle çalışma zamanında nesnelerin dinamik olarak oluşturulmasını gerektirir. Örneğin, bir OLE sunucusu uygulamasının bir istemciden gelen isteğe yanıt olarak ole öğelerini dinamik olarak oluşturabilmesi gerekir. Benzer şekilde, otomasyon sunucusunun otomasyon istemcilerinden gelen isteklere yanıt olarak öğeler oluşturabilmesi gerekir.
Microsoft Foundation Sınıf Kitaplığı, OLE'ye özgü iki makro sağlar.
OLE Nesnelerinin Dinamik Oluşturulması
| Veri Akışı Adı | Açıklama |
|---|---|
AFX_COMCTL32_IF_EXISTS |
Ortak Denetimler kitaplığının belirtilen API'yi uygulayıp uygulamayacağını belirler. |
AFX_COMCTL32_IF_EXISTS2 |
Ortak Denetimler kitaplığının belirtilen API'yi uygulayıp uygulamayacağını belirler. |
DECLARE_OLECREATE |
Nesnelerin OLE otomasyonu aracılığıyla oluşturulmasını sağlar. |
DECLARE_OLECTLTYPE |
GetUserTypeNameID Denetim sınıfınızın ve GetMiscStatus üye işlevlerini bildirir. |
DECLARE_PROPPAGEIDS |
OLE denetiminin özelliklerini görüntülemek için özellik sayfalarının listesini sağladığını bildirir. |
IMPLEMENT_OLECREATE |
Nesnelerin OLE sistemi tarafından oluşturulmasını sağlar. |
IMPLEMENT_OLECTLTYPE |
GetUserTypeNameID Denetim sınıfınızın ve GetMiscStatus üye işlevlerini uygular. |
IMPLEMENT_OLECREATE_FLAGS |
Bu makro veya IMPLEMENT_OLECREATE kullanan DECLARE_OLECREATEherhangi bir sınıf için uygulama dosyasında görünmelidir. |
AFX_COMCTL32_IF_EXISTS
Ortak Denetimler kitaplığının belirtilen API'yi uygulayıp uygulamayacağını belirler.
Sözdizimi
AFX_COMCTL32_IF_EXISTS( proc );
Parametreler
proc
İşlev adını içeren null olarak sonlandırılan bir dizenin işaretçisi veya işlevin sıra değerini belirtir. Bu parametre sıralı bir değerse, düşük sıralı sözcükte olmalıdır; yüksek sıralı sözcük sıfır olmalıdır. Bu parametre Unicode olmalıdır.
Açıklamalar
tarafından belirtilen proc Ortak Denetimler kitaplığının (çağrısı GetProcAddressyerine) olup olmadığını belirlemek için bu makroyu kullanın.
Gereksinimler
afxcomctl32.h, afxcomctl32.inl
AFX_COMCTL32_IF_EXISTS2
Ortak Denetimler kitaplığının belirtilen API'yi uygulayıp uygulamayacağını belirler (bu, unicode sürümüdür AFX_COMCTL32_IF_EXISTS).
Sözdizimi
AFX_COMCTL32_IF_EXISTS2( proc );
Parametreler
proc
İşlev adını içeren null olarak sonlandırılan bir dizenin işaretçisi veya işlevin sıra değerini belirtir. Bu parametre sıralı bir değerse, düşük sıralı sözcükte olmalıdır; yüksek sıralı sözcük sıfır olmalıdır. Bu parametre Unicode olmalıdır.
Açıklamalar
tarafından belirtilen proc Ortak Denetimler kitaplığının (çağrısı GetProcAddressyerine) olup olmadığını belirlemek için bu makroyu kullanın. Bu makro, unicode sürümüdür AFX_COMCTL32_IF_EXISTS.
Gereksinimler
afxcomctl32.h, afxcomctl32.inl
DECLARE_DYNAMIC
öğesinden CObjectbir sınıf türetirken nesnenin sınıfıyla ilgili çalışma zamanı bilgilerine erişme özelliğini ekler.
DECLARE_DYNAMIC(class_name)
Parametreler
class_name
Sınıfın gerçek adı.
Açıklamalar
Makroyu DECLARE_DYNAMIC sınıfın üst bilgi (.h) modülüne ekleyin, ardından bu modülü bu sınıfın nesnelerine erişmesi gereken tüm .cpp modüllere ekleyin.
ve IMPLEMENT_DYNAMIC makrolarını açıklandığı gibi kullanırsanızDECLARE_DYNAMIC, çalışma zamanında nesnelerinizin sınıfını belirlemek için makroyu ve CObject::IsKindOf işlevini kullanabilirsinizRUNTIME_CLASS.
Sınıf bildirimine dahil edilirse DECLARE_DYNAMIC , IMPLEMENT_DYNAMIC sınıf uygulamasına dahil edilmelidir.
Makro hakkında DECLARE_DYNAMIC daha fazla bilgi için bkz CObject . Sınıf Konuları.
Örnek
örneğine IMPLEMENT_DYNAMICbakın.
Gereksinimler
Üstbilgi: afx.h
DECLARE_DYNCREATE
Türetilmiş sınıfların nesnelerinin CObjectçalışma zamanında dinamik olarak oluşturulmasını sağlar.
DECLARE_DYNCREATE(class_name)
Parametreler
class_name
Sınıfın gerçek adı.
Açıklamalar
Çerçeve, dinamik olarak yeni nesneler oluşturmak için bu özelliği kullanır. Örneğin, yeni bir belge açtığınızda oluşturulan yeni görünüm. Çerçevenin bunları dinamik olarak oluşturması gerektiğinden, belge, görünüm ve çerçeve sınıfları dinamik oluşturmayı desteklemelidir.
Sınıfın DECLARE_DYNCREATE modülüne .h makro ekleyin, ardından bu modülü bu sınıfın nesnelerine erişmesi gereken tüm .cpp modüllere ekleyin.
Sınıf bildirimine dahil edilirse DECLARE_DYNCREATE , IMPLEMENT_DYNCREATE sınıf uygulamasına dahil edilmelidir.
Makro hakkında DECLARE_DYNCREATE daha fazla bilgi için bkz CObject . Sınıf Konuları.
Not
Makro, DECLARE_DYNCREATE işlevinin tüm işlevlerini DECLARE_DYNAMICiçerir.
Örnek
örneğine IMPLEMENT_DYNCREATEbakın.
Gereksinimler
Üstbilgi: afx.h
DECLARE_OLECTLTYPE
GetUserTypeNameID Denetim sınıfınızın ve GetMiscStatus üye işlevlerini bildirir.
Sözdizimi
DECLARE_OLECTLTYPE( class_name )
Parametreler
class_name
Denetim sınıfının adı.
Açıklamalar
GetUserTypeNameID ve GetMiscStatus içinde bildirilen saf sanal işlevlerdir COleControl. Bu işlevler saf sanal olduğundan, denetim sınıfınızda geçersiz kılınmalıdır. öğesine DECLARE_OLECTLTYPEek olarak, makroyu IMPLEMENT_OLECTLTYPE denetim sınıfı bildiriminize eklemeniz gerekir.
Gereksinimler
Üstbilgi: afxctl.h
DECLARE_PROPPAGEIDS
OLE denetiminin özelliklerini görüntülemek için özellik sayfalarının listesini sağladığını bildirir.
Sözdizimi
DECLARE_PROPPAGEIDS( class_name )
Parametreler
class_name
Özellik sayfalarının sahibi olan denetim sınıfının adı.
Açıklamalar
DECLARE_PROPPAGEIDS Sınıf bildiriminizin sonundaki makroyu kullanın. Ardından, sınıfın .cpp üye işlevlerini tanımlayan dosyada makroyu BEGIN_PROPPAGEIDS , denetiminizin özellik sayfalarının her biri için makro girdilerini ve END_PROPPAGEIDS özellik sayfası listesinin sonunu bildirmek için makroyu kullanın.
Özellik sayfaları hakkında daha fazla bilgi için ActiveX Denetimleri: Özellik Sayfaları makalesine bakın.
Gereksinimler
Üstbilgi: afxctl.h
DECLARE_SERIAL
Seri hale getirilebilen türetilmiş bir CObjectsınıf için gereken C++ üst bilgi kodunu oluşturur.
DECLARE_SERIAL(class_name)
Parametreler
class_name
Sınıfın gerçek adı.
Açıklamalar
Serileştirme, bir nesnenin içeriğini dosyaya ve dosyadan yazma veya okuma işlemidir.
Bir .h modülde makroyu DECLARE_SERIAL kullanın ve ardından bu modülü bu sınıfın nesnelerine erişmesi gereken tüm .cpp modüllere ekleyin.
Sınıf bildirimine dahil edilirse DECLARE_SERIAL , IMPLEMENT_SERIAL sınıf uygulamasına dahil edilmelidir.
Makro, DECLARE_SERIAL ve DECLARE_DYNCREATEişlevlerinin DECLARE_DYNAMIC tümünü içerir.
ve IMPLEMENT_SERIAL makrolarını kullanan sınıfların AFX_API CArchive ayıklama işlecini otomatik olarak dışarı aktarmak için makroyu DECLARE_SERIAL kullanabilirsiniz. Sınıf bildirimlerini (dosyasında bulunur .h ) aşağıdaki kodla köşeli ayraçla yazın:
#undef AFX_API
#define AFX_API AFX_EXT_CLASS
// <your class declarations here>
#undef AFX_API
#define AFX_API
Makro hakkında DECLARE_SERIAL daha fazla bilgi için bkz CObject . Sınıf Konuları.
Örnek
class CAge : public CObject
{
public:
void Serialize(CArchive& ar);
DECLARE_SERIAL(CAge)
// remainder of class declaration omitted
Gereksinimler
Üstbilgi: afx.h
IMPLEMENT_DYNAMIC
Hiyerarşi içindeki sınıf adına ve konumuna çalışma zamanı erişimi olan dinamik CObjecttüretilmiş bir sınıf için gerekli olan C++ kodunu oluşturur.
IMPLEMENT_DYNAMIC(class_name, base_class_name)
Parametreler
class_name
Sınıfın gerçek adı.
base_class_name
Temel sınıfın adı.
Açıklamalar
Bir modülde makroyu IMPLEMENT_DYNAMIC kullanın ve ardından sonuçta elde edilen nesne kodunu yalnızca bir .cpp kez bağlayın.
Daha fazla bilgi için bkz CObject . Sınıf Konuları.
Örnek
class CPerson : public CObject
{
DECLARE_DYNAMIC(CPerson)
// other declarations
};
IMPLEMENT_DYNAMIC(CPerson, CObject)
Gereksinimler
Üstbilgi: afx.h
IMPLEMENT_DYNCREATE
Türetilmiş sınıfların nesnelerinin CObjectmakroyla kullanıldığında çalışma zamanında dinamik olarak oluşturulmasını DECLARE_DYNCREATE sağlar.
IMPLEMENT_DYNCREATE(class_name, base_class_name)
Parametreler
class_name
Sınıfın gerçek adı.
base_class_name
Temel sınıfın gerçek adı.
Açıklamalar
Çerçeve, örneğin serileştirme sırasında diskten bir nesne okuduğunda dinamik olarak yeni nesneler oluşturmak için bu özelliği kullanır. Makroyu IMPLEMENT_DYNCREATE sınıf uygulama dosyasına ekleyin. Daha fazla bilgi için bkz CObject . Sınıf Konuları.
ve makrolarını kullanırsanızDECLARE_DYNCREATE, çalışma zamanında nesnelerinizin sınıfını belirlemek için makroyu ve CObject::IsKindOf üye işlevini kullanabilirsinizRUNTIME_CLASS.IMPLEMENT_DYNCREATE
Sınıf bildirimine dahil edilirse DECLARE_DYNCREATE , IMPLEMENT_DYNCREATE sınıf uygulamasına dahil edilmelidir.
Bu makro tanımının sınıfınız için varsayılan oluşturucuyu çağıracağını unutmayın. Önemsiz olmayan bir oluşturucu sınıf tarafından açıkça uygulanırsa, varsayılan oluşturucuyu da açıkça uygulamalıdır. Varsayılan oluşturucu, sınıfın veya protected üye bölümlerinin sınıf private uygulaması dışından çağrılmasını önlemek için eklenebilir.
Örnek
class CMyDynCreateObj : public CObject
{
int m_Num;
public:
DECLARE_DYNCREATE(CMyDynCreateObj)
CMyDynCreateObj(int Num) { m_Num = Num; }
private:
CMyDynCreateObj() { m_Num = 0; } // provide default constructor only for
// dynamic creation
};
IMPLEMENT_DYNCREATE(CMyDynCreateObj, CObject)
Gereksinimler
Üstbilgi: afx.h
IMPLEMENT_OLECREATE_FLAGS
Bu makro veya IMPLEMENT_OLECREATE kullanan DECLARE_OLECREATEherhangi bir sınıf için uygulama dosyasında görünmelidir.
Sözdizimi
IMPLEMENT_OLECREATE_FLAGS( class_name, external_name, nFlags,
l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Parametreler
class_name
Sınıfın gerçek adı.
external_name
Diğer uygulamalara sunulan nesne adı (tırnak içine alınmış).
nFlags
Aşağıdaki bayraklardan birini veya daha fazlasını içerir:
afxRegInsertableDENETIMIn OLE nesneleri için Nesne Ekle iletişim kutusunda görünmesine izin verir.afxRegApartmentThreadingKayıt defterindeki iş parçacığı modelini olarakThreadingModel=Apartmentayarlar.afxRegFreeThreadingKayıt defterindeki iş parçacığı modelini olarakThreadingModel=Freeayarlar.
İki bayrağı afxRegApartmentThreading afxRegFreeThreading birleştirip ThreadingModel=Both değerini ayarlayabilirsiniz. İş parçacığı modeli kaydı hakkında daha fazla bilgi için Bkz InprocServer32 . Windows SDK'sı.
l, w1, w2, , b2b1, , b3, b4, b5, b6, , , b7Sınıfın b8 CLSID bileşenleri.
Açıklamalar
Not
kullanıyorsanız IMPLEMENT_OLECREATE_FLAGSparametresini kullanarak nesnenizin hangi iş parçacığı modelini desteklediğini nFlags belirtebilirsiniz. Yalnızca tek ayaklı modeli desteklemek istiyorsanız kullanın IMPLEMENT_OLECREATE.
Dış ad, diğer uygulamalara sunulan tanımlayıcıdır. İstemci uygulamaları, otomasyon sunucusundan bu sınıfın bir nesnesini istemek için dış adı kullanır.
OLE sınıf kimliği, nesne için benzersiz bir 128 bit tanımlayıcıdır. Söz dizimi açıklamasında , , ve aracılığıyla b8 gösterildiği lw2w1gibi bir long, iki **WORD**s ve b1 sekiz **BYTE**sn'den oluşur. Uygulama Sihirbazı ve kod sihirbazları, gerektiğinde sizin için benzersiz OLE sınıfı kimlikleri oluşturur.
Gereksinimler
Üstbilgi: afxdisp.h
IMPLEMENT_OLECTLTYPE
GetUserTypeNameID Denetim sınıfınızın ve GetMiscStatus üye işlevlerini uygular.
Sözdizimi
DECLARE_OLECTLTYPE( class_name, idsUserTypeName, dwOleMisc )
Parametreler
class_name
Denetim sınıfının adı.
idsUserTypeName
Denetimin dış adını içeren bir dizenin kaynak kimliği.
dwOleMisc
Bir veya daha fazla bayrak içeren bir numaralandırma. Bu numaralandırma hakkında daha fazla bilgi için Bkz OLEMISC . Windows SDK'sı.
Açıklamalar
öğesine IMPLEMENT_OLECTLTYPEek olarak, makroyu DECLARE_OLECTLTYPE denetim sınıfı bildiriminize eklemeniz gerekir.
GetUserTypeNameID üye işlevi, denetim sınıfınızı tanımlayan kaynak dizesini döndürür. GetMiscStatusOLEMISC denetiminizin bitlerini döndürür. Bu numaralandırma, denetiminizin çeşitli özelliklerini açıklayan bir ayar koleksiyonunu belirtir. Ayarların OLEMISC tam açıklaması için Bkz OLEMISC . Windows SDK'sı.
Not
ActiveX ControlWizard tarafından kullanılan varsayılan ayarlar şunlardır: OLEMISC_ACTIVATEWHENVISIBLE, OLEMISC_SETCLIENTSITEFIRST, OLEMISC_INSIDEOUT, OLEMISC_CANTLINKINSIDEve OLEMISC_RECOMPOSEONRESIZE.
Gereksinimler
Üstbilgi: afxctl.h
IMPLEMENT_SERIAL
Hiyerarşi içindeki sınıf adına ve konumuna çalışma zamanı erişimi olan dinamik CObjecttüretilmiş bir sınıf için gerekli olan C++ kodunu oluşturur.
IMPLEMENT_SERIAL(class_name, base_class_name, wSchema)
Parametreler
class_name
Sınıfın gerçek adı.
base_class_name
Temel sınıfın adı.
wSchema
Seri durumdan çıkarma programının önceki program sürümleri tarafından oluşturulan verileri tanımlamasını ve işlemesini sağlamak için arşivde kodlanacak UINT "sürüm numarası". Sınıf şema numarası -1 olmamalıdır.
Açıklamalar
Bir modülde makroyu IMPLEMENT_SERIAL kullanın; ardından sonuçta elde edilen nesne kodunu yalnızca bir .cpp kez bağlayın.
ve IMPLEMENT_SERIAL makrolarını kullanan sınıfların AFX_API CArchive ayıklama işlecini otomatik olarak dışarı aktarmak için makroyu DECLARE_SERIAL kullanabilirsiniz. Sınıf bildirimlerini (dosyasında bulunur .h ) aşağıdaki kodla köşeli ayraçla yazın:
#undef AFX_API
#define AFX_API AFX_EXT_CLASS
// <your class declarations here>
#undef AFX_API
#define AFX_API
Daha fazla bilgi için bkz CObject . Sınıf Konuları.
Örnek
IMPLEMENT_SERIAL(CAge, CObject, VERSIONABLE_SCHEMA | 2)
Gereksinimler
Üstbilgi: afx.h
RUNTIME_CLASS
Çalışma zamanı sınıf yapısını bir C++ sınıfının adından alır.
RUNTIME_CLASS(class_name)
Parametreler
class_name
Sınıfın gerçek adı (tırnak içine alınmaz).
Açıklamalar
RUNTIME_CLASStarafından class_namebelirtilen sınıfın yapısına yönelik bir CRuntimeClass işaretçi döndürür. Yalnızca CObject, DECLARE_DYNCREATEveya DECLARE_SERIAL ile DECLARE_DYNAMICbildirilen türetilmiş sınıflar bir CRuntimeClass yapıya işaretçiler döndürür.
Daha fazla bilgi için bkz CObject . Sınıf Konuları.
Örnek
CRuntimeClass* prt = RUNTIME_CLASS(CAge);
ASSERT(strcmp(prt->m_lpszClassName, "CAge") == 0);
Gereksinimler
Üstbilgi: afx.h
DECLARE_OLECREATE
Türetilmiş sınıfların nesnelerinin CCmdTargetOLE otomasyonu aracılığıyla oluşturulmasını sağlar.
DECLARE_OLECREATE(class_name)
Parametreler
class_name
Sınıfın gerçek adı.
Açıklamalar
Bu makro, ole özellikli diğer uygulamaların bu tür nesneler oluşturmasına olanak tanır.
Sınıfın DECLARE_OLECREATE modülüne .h makroyu ekleyin ve ardından bu modülü bu sınıfın nesnelerine erişmesi gereken tüm .cpp modüllere ekleyin.
Sınıf bildirimine dahil edilirse DECLARE_OLECREATE , IMPLEMENT_OLECREATE sınıf uygulamasına dahil edilmelidir. kullanan DECLARE_OLECREATE bir sınıf bildirimi de veya DECLARE_SERIALkullanmalıdırDECLARE_DYNCREATE.
Gereksinimler
Üst Bilgi: afxdisp.h
IMPLEMENT_OLECREATE
Bu makro veya IMPLEMENT_OLECREATE_FLAGS kullanan DECLARE_OLECREATEherhangi bir sınıf için uygulama dosyasında görünmelidir.
IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Parametreler
class_name
Sınıfın gerçek adı.
external_name
Diğer uygulamalara sunulan nesne adı (tırnak içine alınmış).
l, w1, w2, , b2b1, , b3, b4, b5, b6, , , b7Sınıfın b8 CLSID bileşenleri.
Açıklamalar
Not
kullanıyorsanız IMPLEMENT_OLECREATE, varsayılan olarak yalnızca tek iş parçacığı modelini desteklersiniz. kullanıyorsanız IMPLEMENT_OLECREATE_FLAGSparametresini kullanarak nesnenizin hangi iş parçacığı modelini desteklediğini nFlags belirtebilirsiniz.
Dış ad, diğer uygulamalara sunulan tanımlayıcıdır. İstemci uygulamaları, otomasyon sunucusundan bu sınıfın bir nesnesini istemek için dış adı kullanır.
OLE sınıf kimliği, nesne için benzersiz bir 128 bit tanımlayıcıdır. Söz dizimi açıklamasında , , ve aracılığıyla b8 gösterildiği lw2w1gibi bir long, iki **WORD**s ve b1 sekiz **BYTE**sn'den oluşur. Uygulama Sihirbazı ve kod sihirbazları, gerektiğinde sizin için benzersiz OLE sınıfı kimlikleri oluşturur.
Gereksinimler
Üst Bilgi: afxdisp.h
Ayrıca bkz.
Makrolar ve Genel Ayarlar
MFC Ortak Denetimler Kitaplığını Yalıtma
CLSID Anahtarı