Aracılığıyla paylaş


Eşlemeleri Dağıtma

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

Ayrıca bkz.

Makrolar ve Genel Ayarlar