Çalışma Süresi Nesne Modeli Hizmetleri
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_OLECREATE herhangi 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ı GetProcAddress
yerine) 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ı GetProcAddress
yerine) 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 CObject
bir 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_DYNAMIC
bakı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_DYNAMIC
içerir.
Örnek
örneğine IMPLEMENT_DYNCREATE
bakı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_OLECTLTYPE
ek 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 CObject
sı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_DYNCREATE
iş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 CObject
tü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 CObject
makroyla 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_OLECREATE
herhangi 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:
afxRegInsertable
DENETIMIn OLE nesneleri için Nesne Ekle iletişim kutusunda görünmesine izin verir.afxRegApartmentThreading
Kayıt defterindeki iş parçacığı modelini olarakThreadingModel=Apartment
ayarlar.afxRegFreeThreading
Kayıt defterindeki iş parçacığı modelini olarakThreadingModel=Free
ayarlar.
İ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
, , b2
b1
, , b3
, b4
, b5
, b6
, , , b7
Sınıfın b8
CLSID bileşenleri.
Açıklamalar
Not
kullanıyorsanız IMPLEMENT_OLECREATE_FLAGS
parametresini 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 l
w2
w1
gibi 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_OLECTLTYPE
ek 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. GetMiscStatus
OLEMISC
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_CANTLINKINSIDE
ve 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 CObject
tü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_CLASS
tarafından class_name
belirtilen sınıfın yapısına yönelik bir CRuntimeClass
işaretçi döndürür. Yalnızca CObject
, DECLARE_DYNCREATE
veya DECLARE_SERIAL
ile DECLARE_DYNAMIC
bildirilen 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 CCmdTarget
OLE 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_SERIAL
kullanmalıdırDECLARE_DYNCREATE
.
Gereksinimler
Üst Bilgi: afxdisp.h
IMPLEMENT_OLECREATE
Bu makro veya IMPLEMENT_OLECREATE_FLAGS
kullanan DECLARE_OLECREATE
herhangi 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
, , b2
b1
, , b3
, b4
, b5
, b6
, , , b7
Sı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_FLAGS
parametresini 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 l
w2
w1
gibi 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ı