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.
Not
Microsoft Foundation Sınıfları (MFC) kitaplığına destek verilmeye devam ediliyor. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
OLE Otomasyonu, yöntemleri çağırmanın ve uygulamalar arasında özelliklere erişmenin yollarını sağlar. Bu isteklerin gönderilmesi için Microsoft Foundation Sınıf Kitaplığı tarafından sağlanan mekanizma, nesne işlevlerinin ve özelliklerinin iç ve dış adlarının yanı sıra özelliklerin kendi ve işlev bağımsız değişkenlerinin veri türlerini belirten "dağıtım haritasıdır".
| Harita makrolarını dağıtma | Açıklama |
|---|---|
| DECLARE_DISPATCH_MAP | Bir sınıfın yöntemlerini ve özelliklerini kullanıma açmak için bir dağıtım eşlemesinin kullanılacağını bildirir (sınıf bildiriminde kullanılmalıdır). |
| BEGIN_DISPATCH_MAP | Dağıtım haritasının tanımını başlatır. |
| END_DISPATCH_MAP | Dağıtım eşlemesinin tanımını sonlandırır. |
| DISP_FUNCTION | OLE otomasyon işlevini tanımlamak için dağıtım eşlemesinde kullanılır. |
| DISP_PROPERTY | OLE otomasyonu özelliğini tanımlar. |
| DISP_PROPERTY_EX | Bir OLE otomasyonu özelliğini tanımlar ve Get ve Set işlevlerini adlandırın. |
| DISP_PROPERTY_NOTIFY | Bildirim içeren bir OLE otomasyonu özelliği tanımlar. |
| DISP_PROPERTY_PARAM | Parametreleri alan ve Get ve Set işlevlerini adlandıran bir OLE otomasyonu özelliği tanımlar. |
| DISP_DEFVALUE | Var olan bir özelliği bir nesnenin varsayılan değeri yapar. |
DECLARE_DISPATCH_MAP
Programınızdaki türetilmiş bir CCmdTargetsınıf OLE Otomasyonu'nu destekliyorsa, bu sınıfın yöntemlerini ve özelliklerini kullanıma sunmak için bir dağıtım eşlemesi sağlaması gerekir.
DECLARE_DISPATCH_MAP()
Açıklamalar
Sınıf bildiriminizin sonundaki DECLARE_DISPATCH_MAP makroyu kullanın. Ardından, içinde. Sınıfın üye işlevlerini tanımlayan CPP dosyası, BEGIN_DISPATCH_MAP makroyu kullanın. Ardından sınıfınızın kullanıma sunulan yöntemleri ve özellikleri (DISP_FUNCTION, DISP_PROPERTY vb.) için makro girdileri ekleyin. Son olarak END_DISPATCH_MAP makroyu kullanın.
Not
DECLARE_DISPATCH_MAP sonra herhangi bir üye bildirirseniz, bunlar için yeni bir erişim türü ( public, privateveya protected) belirtmeniz gerekir.
Uygulama Sihirbazı ve kod sihirbazları Otomasyon sınıflarının oluşturulmasına ve dağıtım eşlemelerinin korunmasına yardımcı olabilir. Dağıtım haritaları hakkında daha fazla bilgi için bkz . Otomasyon Sunucuları.
Örnek
class CMyServerDoc : public COleServerDoc
{
DECLARE_DISPATCH_MAP()
// Remainder of class declaration omitted.
Gereksinimler
Üst bilgi: afxwin.h
BEGIN_DISPATCH_MAP
Dağıtım eşlemenizin tanımını bildirir.
BEGIN_DISPATCH_MAP(theClass, baseClass)
Parametreler
theClass
Bu dağıtım eşlemesine sahip olan sınıfın adını belirtir.
baseClass
Class'ın temel sınıf adını belirtir.
Açıklamalar
Sınıfınızın üye işlevlerini tanımlayan uygulama (.cpp) dosyasında, dağıtım eşlemesini BEGIN_DISPATCH_MAP makroyla başlatın, her dağıtma işlevi ve özelliği için makro girdileri ekleyin ve END_DISPATCH_MAP makroyla dağıtma eşlemesini tamamlayın.
Gereksinimler
Üst bilgi: afxdisp.h
END_DISPATCH_MAP
Dağıtım haritanızın tanımını sonlandırır.
END_DISPATCH_MAP()
Açıklamalar
BEGIN_DISPATCH_MAP ile birlikte kullanılmalıdır.
Gereksinimler
Üst bilgi: afxdisp.h
DISP_FUNCTION
Dağıtım eşlemesinde ole otomasyon işlevini tanımlar.
DISP_FUNCTION(
theClass,
pszName,
pfnMember,
vtRetVal,
vtsParams)
Parametreler
theClass
Sınıfın adı.
pszName
İşlevin dış adı.
pfnMember
Üye işlevinin adı.
vtRetVal
İşlevin dönüş türünü belirten bir değer.
vtsParams
İşlevin parametre listesini belirten bir veya daha fazla sabitin boşlukla ayrılmış listesi.
Açıklamalar
vtRetVal bağımsız değişkeni VARTYPE türündedir. Bu bağımsız değişken için aşağıdaki olası değerler numaralandırmadan VARENUM alınır:
| Simge | Dönüş türü |
|---|---|
| VT_EMPTY | void |
| VT_I2 | short |
| VT_I4 | long |
| VT_R4 | float |
| VT_R8 | double |
| VT_CY | CY |
| VT_DATE | DATE |
| VT_BSTR | BSTR |
| VT_DISPATCH | LPDISPATCH |
| VT_ERROR | SCODE |
| VT_BOOL | BOOL |
| VT_VARIANT | VARIANT |
| VT_UNKNOWN | LPUNKNOWN |
vtsParams bağımsız değişkeni, sabitlerdeki VTS_* değerlerin boşlukla ayrılmış bir listesidir. Bu değerlerden biri veya daha fazlası boşluklarla (virgülle değil) ayrılmış olarak işlevin parametre listesini belirtir. Örneğin,
VTS_I2 VTS_PI2
kısa tamsayı içeren bir liste ve ardından kısa tamsayı işaretçisi belirtir.
Sabitler VTS_ ve anlamları aşağıdaki gibidir:
| Simge | Parametre türü |
|---|---|
| VTS_I2 | short |
| VTS_I4 | long |
| VTS_R4 | float |
| VTS_R8 | double |
| VTS_CY |
const CY veya CY* |
| VTS_DATE | DATE |
| VTS_BSTR | LPCSTR |
| VTS_DISPATCH | LPDISPATCH |
| VTS_SCODE | SCODE |
| VTS_BOOL | BOOL |
| VTS_VARIANT |
const VARIANT* veya VARIANT& |
| VTS_UNKNOWN | LPUNKNOWN |
| VTS_PI2 | kısa* |
| VTS_PI4 | uzun* |
| VTS_PR4 | yüzmek* |
| VTS_PR8 | çift* |
| VTS_PCY | CY* |
| VTS_PDATE | DATE* |
| VTS_PBSTR | BSTR* |
| VTS_PDISPATCH | LPDISPATCH* |
| VTS_PSCODE | SCODE* |
| VTS_PBOOL | BOOL* |
| VTS_PVARIANT | VARIANT* |
| VTS_PUNKNOWN | LPUNKNOWN* |
| VTS_NONE | Parametre yok |
Gereksinimler
Üst bilgi: afxdisp.h
DISP_PROPERTY
Dağıtım eşlemesinde bir OLE otomasyonu özelliği tanımlar.
DISP_PROPERTY(
theClass,
pszName,
memberName,
vtPropType)
Parametreler
theClass
Sınıfın adı.
pszName
Özelliğin dış adı.
memberName
Özelliğin depolandığı üye değişkeninin adı.
vtPropType
Özelliğin türünü belirten bir değer.
Açıklamalar
vtPropType bağımsız değişkeni VARTYPE türündedir. Bu bağımsız değişkenin olası değerleri VARENUM numaralandırmasından alınır:
| Simge | Özellik türü |
|---|---|
| VT_I2 | short |
| VT_I4 | long |
| VT_R4 | float |
| VT_R8 | double |
| VT_CY | CY |
| VT_DATE | DATE |
| VT_BSTR | CString |
| VT_DISPATCH | LPDISPATCH |
| VT_ERROR | SCODE |
| VT_BOOL | BOOL |
| VT_VARIANT | VARIANT |
| VT_UNKNOWN | LPUNKNOWN |
Bir dış istemci özelliği değiştirdiğinde, memberName tarafından belirtilen üye değişkeninin değeri değişir; değişiklik bildirimi yoktur.
Gereksinimler
Üst bilgi: afxdisp.h
DISP_PROPERTY_EX
Ole otomasyonu özelliğini tanımlar ve özelliğin değerini bir dağıtım eşlemesinde almak ve ayarlamak için kullanılan işlevleri adlandırın.
DISP_PROPERTY_EX(
theClass,
pszName,
memberGet,
memberSet,
vtPropType)
Parametreler
theClass
Sınıfın adı.
pszName
Özelliğin dış adı.
memberGet
Özelliğini almak için kullanılan üye işlevinin adı.
memberSet
Özelliğini ayarlamak için kullanılan üye işlevinin adı.
vtPropType
Özelliğin türünü belirten bir değer.
Açıklamalar
memberGet ve memberSet işlevleri, vtPropType bağımsız değişkeni tarafından belirlenen imzalara sahiptir. memberGet işlevi bağımsız değişken almaz ve vtPropType tarafından belirtilen türde bir değer döndürür. memberSet işlevi vtPropType tarafından belirtilen türde bir bağımsız değişken alır ve hiçbir şey döndürmez.
vtPropType bağımsız değişkeni VARTYPE türündedir. Bu bağımsız değişkenin olası değerleri VARENUM numaralandırmasından alınır. Bu değerlerin listesi için DISP_FUNCTION'de vtRetVal parametresine yönelik Açıklamalar'a bakın. DISP_FUNCTION açıklamalarında listelenen VT_EMPTY özellik veri türü olarak izin verilmediğini unutmayın.
Gereksinimler
Üst bilgi: afxdisp.h
DISP_PROPERTY_NOTIFY
Dağıtım eşlemesinde bildirim içeren bir OLE otomasyonu özelliği tanımlar.
DISP_PROPERTY_NOTIFY(
theClass,
szExternalName,
memberName,
pfnAfterSet,
vtPropType)
Parametreler
theClass
Sınıfın adı.
szExternalName
Özelliğin dış adı.
memberName
Özelliğin depolandığı üye değişkeninin adı.
pfnAfterSet
szExternalName için bildirim işlevinin adı.
vtPropType
Özelliğin türünü belirten bir değer.
Açıklamalar
DISP_PROPERTY ile tanımlanan özelliklerden farklı olarak, DISP_PROPERTY_NOTIFY ile tanımlanan bir özellik, özellik değiştirildiğinde pfnAfterSet tarafından belirtilen işlevi otomatik olarak çağırır.
vtPropType bağımsız değişkeni VARTYPE türündedir. Bu bağımsız değişkenin olası değerleri VARENUM numaralandırmasından alınır:
| Simge | Özellik türü |
|---|---|
| VT_I2 | short |
| VT_I4 | long |
| VT_R4 | float |
| VT_R8 | double |
| VT_CY | CY |
| VT_DATE | DATE |
| VT_BSTR | CString |
| VT_DISPATCH | LPDISPATCH |
| VT_ERROR | SCODE |
| VT_BOOL | BOOL |
| VT_VARIANT | VARIANT |
| VT_UNKNOWN | LPUNKNOWN |
Gereksinimler
Üst bilgi: afxdisp.h
DISP_PROPERTY_PARAM
Ayrı Get ve Set üye işlevleriyle erişilen bir özelliği tanımlar.
DISP_PROPERTY_PARAM(
theClass,
pszExternalName,
pfnGet,
pfnSet,
vtPropType,
vtsParams)
Parametreler
theClass
Sınıfın adı.
pszExternalName
Özelliğin dış adı.
pfnGet
Özelliğini almak için kullanılan üye işlevinin adı.
pfnSet
Özelliğini ayarlamak için kullanılan üye işlevinin adı.
vtPropType
Özelliğin türünü belirten bir değer.
vtsParams
Her parametre için bir tane olmak üzere boşlukla ayrılmış VTS_* değişken parametre türleri dizesi.
Açıklamalar
DISP_PROPERTY_EX makrosunun aksine, bu makro özelliği için bir parametre listesi belirtmenize olanak tanır. Bu, dizine alınan veya parametrelendirilen özellikleri uygulamak için kullanışlıdır.
Örnek
Kullanıcının özelliğe erişirken belirli bir satır ve sütun istemesine izin veren get ve set üye işlevlerinin aşağıdaki bildirimini göz önünde bulundurun:
SHORT GetArray(SHORT row, SHORT column);
void SetArray(SHORT row, SHORT column, SHORT newVal);
Bunlar, denetim dağıtım eşlemesinde aşağıdaki DISP_PROPERTY_PARAM makroya karşılık gelir:
DISP_PROPERTY_PARAM(CMFCActiveXControlCtrl, "Array", GetArray, SetArray, VT_I2, VTS_I2 VTS_I2)
Başka bir örnek olarak, aşağıdaki get ve set üye işlevlerini göz önünde bulundurun:
IDispatch* GetItem(SHORT index1, SHORT index2, SHORT index3);
void SetItem(SHORT index1, SHORT index2, SHORT index3, IDispatch* pVal);
Bunlar, denetim dağıtım eşlemesinde aşağıdaki DISP_PROPERTY_PARAM makroya karşılık gelir:
DISP_PROPERTY_PARAM(CMFCActiveXControlCtrl, "Item", GetItem, SetItem, VT_DISPATCH, VTS_I2 VTS_I2 VTS_I2)
Gereksinimler
Üst bilgi: afxdisp.h
DISP_DEFVALUE
Var olan bir özelliği bir nesnenin varsayılan değeri yapar.
DISP_DEFVALUE(theClass, pszName)
Parametreler
theClass
Sınıfın adı.
pszName
Nesnenin "değerini" temsil eden özelliğin dış adı.
Açıklamalar
Varsayılan bir değer kullanmak, otomasyon nesnenizin visual basic uygulamaları için daha kolay bir şekilde programlamasını sağlayabilir.
Nesnenizin "varsayılan değeri", bir nesneye başvuru bir özellik veya üye işlevi belirtmediğinde alınan veya ayarlanan özelliktir.
Gereksinimler
Üst bilgi: afxdisp.h