AtlGetObjectSourceInterface
Bir nesnenin varsayılan kaynak arabirimi hakkında bilgi almak için bu işlevini çağırın.
Önemli |
---|
İçinde yürütme uygulamaları, bu işlev kullanılamaz Windows Çalışma Zamanı. |
ATLAPI AtlGetObjectSourceInterface(
IUnknown* punkObj,
GUID* plibid,
IID* piid,
unsigned short* pdwMajor,
unsigned short* pdwMinor
);
Parametreler
punkObj
[in] Bilgi döndürülecek nesnesi için bir işaretçi.plibid
[Çıkış] Kaynak arabirim tanımını içeren tür kitaplığı kaydettiriliyor kitaplık kimliği için bir işaretçi.piid
[Çıkış] Nesnenin varsayılan kaynak arabirimin arabirim kimliği için bir işaretçi.pdwMajor
[Çıkış] Ana sürüm numarası kaynak arabiriminin tanımını içeren tür kitaplığı için bir işaretçi.pdwMinor
[Çıkış] Alt sürüm numarası kaynak arabiriminin tanımını içeren tür kitaplığı için bir işaretçi.
Dönüş Değeri
Standart hresult değeri.
Notlar
AtlGetObjectSourceInterfacesizinle birlikte arabirimin arabirim kimliği varsayılan kaynak, kitaplık kimliği ile birlikte ve ana ve ikincil sürüm numaraları bu arabirimi tanımlayan Tür kitaplığı sağlayabilir.
[!NOT]
Başarılı bir şekilde istenen bilgileri almak, bu işlev için nesnenin temsil ettiği punkObj uygulamalıdır IDispatch (ve dönüş türü bilgileri aracılığıyla IDispatch::GetTypeInfo) yanı sıra, aynı zamanda ya da uygulamak gerekir IProvideClassInfo2 veya IPersist.Tür bilgileri aynı tür kitaplığında kaynak arabirimin türü bilgilerini olmalıdır IDispatch.
Örnek
Aşağıdaki örnek bir olay havuzu sınıfı nasıl tanımlayabilir gösterir CEasySink, için bünyesinde şablon bağımsız değişken sayısı azalır IDispEventImpl için gerekli temel özelliklerin çalıştırıldığı.EasyAdviseve EasyUnadvise kullanmak AtlGetObjectSourceInterface başlatmak için IDispEventImpl arama önce üye DispEventAdvise veya DispEventUnadvise.
template <UINT nID, class T>
class CEasySink : public IDispEventImpl<nID, T>
{
public:
HRESULT EasyAdvise(IUnknown* pUnk)
{
AtlGetObjectSourceInterface(pUnk,
&m_libid, &m_iid, &m_wMajorVerNum, &m_wMinorVerNum);
return DispEventAdvise(pUnk, &m_iid);
}
HRESULT EasyUnadvise(IUnknown* pUnk)
{
AtlGetObjectSourceInterface(pUnk,
&m_libid, &m_iid, &m_wMajorVerNum, &m_wMinorVerNum);
return DispEventUnadvise(pUnk, &m_iid);
}
};
Gereksinimler
Başlık: atlcom.h