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
Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
Bu işlevler, iletişim kutusu oluşturma ve ActiveX denetimlerini oluşturma, barındırma ve lisanslama desteği sağlar.
Önemli
Aşağıdaki tabloda listelenen işlevler, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.
| İşlev | Açıklama |
|---|---|
| AtlAxDialogBox | Kullanıcı tarafından sağlanan bir iletişim kutusu şablonundan kalıcı bir iletişim kutusu oluşturur. Sonuçta elde edilen iletişim kutusu ActiveX denetimleri içerebilir. |
| AtlAxCreateDialog | Kullanıcı tarafından sağlanan bir iletişim kutusu şablonundan modsuz bir iletişim kutusu oluşturur. Sonuçta elde edilen iletişim kutusu ActiveX denetimleri içerebilir. |
| AtlAxCreateControl | Bir ActiveX denetimi oluşturur, onu başlatır ve belirtilen pencerede barındırır. |
| AtlAxCreateControlEx | Bir ActiveX denetimi oluşturur, bunu başlatır, belirtilen pencerede barındırıyor ve denetimden bir arabirim işaretçisi (veya işaretçiler) alır. |
| AtlAxCreateControlLic | Lisanslı bir ActiveX denetimi oluşturur, onu başlatır ve belirtilen pencerede barındırır. |
| AtlAxCreateControlLicEx | Lisanslı bir ActiveX denetimi oluşturur, bunu başlatır, belirtilen pencerede barındırıyor ve denetimden bir arabirim işaretçisi (veya işaretçiler) alır. |
| AtlAxAttachControl | Önceden oluşturulmuş bir denetimi belirtilen pencereye ekler. |
| AtlAxGetHost | Tutamacı göz önüne alındığında, belirtilen bir pencere (varsa) için kapsayıcıya doğrudan arabirim işaretçisi almak için kullanılır. |
| AtlAxGetControl | Tutamacı göz önünde bulundurulduğunda, belirli bir pencerenin (varsa) içinde yer alan denetime yönelik bir doğrudan arabirim işaretçisi elde etmek için kullanılır. |
| AtlSetChildSite |
IUnknown Alt sitenin öğesini başlatır. |
| AtlAxWinInit | AxWin nesneleri için barındırma kodunu başlatır. |
| AtlAxWinTerm | AxWin nesneleri için barındırma kodunun başlatılmamış halini alır. |
| AtlGetObjectSourceInterface | Bir nesnenin varsayılan kaynak arabirimi hakkındaki bilgileri döndürür. |
Gereksinimler
Üst bilgi: atlhost.h
AtlAxDialogBox
Kullanıcı tarafından sağlanan bir iletişim kutusu şablonundan kalıcı bir iletişim kutusu oluşturur.
ATLAPI_(int) AtlAxDialogBox(
HINSTANCE hInstance,
LPCWSTR lpTemplateName,
HWND hWndParent,
DLGPROC lpDialogProc,
LPARAM dwInitParam);
Parametreler
hInstance
[in] Yürütülebilir dosyası iletişim kutusu şablonunu içeren modülün bir örneğini tanımlar.
lpTemplateName
[in] İletişim kutusu şablonunu tanımlar. Bu parametre, iletişim kutusu şablonunun adını belirten null ile sonlandırılan karakter dizesinin işaretçisi veya iletişim kutusu şablonunun kaynak tanımlayıcısını belirten bir tamsayı değeridir. Parametresi bir kaynak tanımlayıcısı belirtiyorsa, yüksek sıralı sözcüğü sıfır olmalı ve düşük sıralı sözcüğü tanımlayıcıyı içermelidir. Bu değeri oluşturmak için MAKEINTRESOURCE makrosunu kullanabilirsiniz.
hWndParent
[in] İletişim kutusunun sahibi olan pencereyi tanımlar.
lpDialogProc
[in] İletişim kutusu yordamını gösterir. İletişim kutusu yordamı hakkında daha fazla bilgi için bkz . DialogProc.
dwInitParam
[in] WM_INITDIALOG iletisinin lParam parametresindeki iletişim kutusuna geçirecek değeri belirtir.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Açıklamalar
ActiveX denetimi içeren bir iletişim kutusu şablonuyla kullanmak AtlAxDialogBox için, iletişim kutusu kaynağının CONTROL bölümünün metin alanı olarak geçerli bir CLSID, APPID veya URL dizesi ve aynı bölüm altındaki sınıf adı alanı olarak "AtlAxWin80" belirtin. Geçerli bir CONTROL bölümünün nasıl görünebileceği aşağıda gösterilmiştir:
CONTROL "{04FE35E9-ADBC-4f1d-83FE-8FA4D1F71C7F}", IDC_TEST,
"AtlAxWin80", WS_GROUP | WS_TABSTOP, 0, 0, 100, 100
Kaynak betiklerini düzenleme hakkında daha fazla bilgi için bkz . Nasıl yapılır: Kaynak Oluşturma. Kaynak tanımı deyimlerini denetleme hakkında daha fazla bilgi için bkz . Windows SDK: SDK Araçları altındaki Ortak Denetim Parametreleri .
Genel olarak iletişim kutuları hakkında daha fazla bilgi için Windows SDK'sında DialogBox ve CreateDialogParam'a bakın.
AtlAxCreateDialog
Kullanıcı tarafından sağlanan bir iletişim kutusu şablonundan modsuz bir iletişim kutusu oluşturur.
ATLAPI_(HWND) AtlAxCreateDialog(
HINSTANCE hInstance,
LPCWSTR lpTemplateName,
HWND hWndParent,
DLGPROC lpDialogProc,
LPARAM dwInitParam);
Parametreler
hInstance
[in] Yürütülebilir dosyası iletişim kutusu şablonunu içeren modülün bir örneğini tanımlar.
lpTemplateName
[in] İletişim kutusu şablonunu tanımlar. Bu parametre, iletişim kutusu şablonunun adını belirten null ile sonlandırılan karakter dizesinin işaretçisi veya iletişim kutusu şablonunun kaynak tanımlayıcısını belirten bir tamsayı değeridir. Parametresi bir kaynak tanımlayıcısı belirtiyorsa, yüksek sıralı sözcüğü sıfır olmalı ve düşük sıralı sözcüğü tanımlayıcıyı içermelidir. Bu değeri oluşturmak için MAKEINTRESOURCE makrosunu kullanabilirsiniz.
hWndParent
[in] İletişim kutusunun sahibi olan pencereyi tanımlar.
lpDialogProc
[in] İletişim kutusu yordamını gösterir. İletişim kutusu yordamı hakkında daha fazla bilgi için bkz . DialogProc.
dwInitParam
[in] WM_INITDIALOG iletisinin lParam parametresindeki iletişim kutusuna geçirecek değeri belirtir.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Açıklamalar
Sonuçta elde edilen iletişim kutusu ActiveX denetimleri içerebilir.
Bkz . Windows SDK'sında CreateDialog ve CreateDialogParam .
AtlAxCreateControl
Bir ActiveX denetimi oluşturur, onu başlatır ve belirtilen pencerede barındırır.
ATLAPI AtlAxCreateControl(
LPCOLESTR lpszName,
HWND hWnd,
IStream* pStream,
IUnknown** ppUnkContainer);
Parametreler
lpszName
Denetime geçirilecek dize işaretçisi. Aşağıdaki yollardan biriyle biçimlendirilmelidir:
Gibi bir ProgID
"MSCAL.Calendar.7"ClSID gibi bir
"{8E27C92B-1264-101C-8A2F-040224009C02}"URL gibi
"<https://www.microsoft.com>"Etkin bir belgeye başvuru, örneğin
"file://\\\Documents\MyDoc.doc"HTML'nin bir parçası, örneğin
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"Not
"MSHTML:"BIR MSHTML akışı olarak atanması için HTML parçasından önce olmalıdır.
hWnd
[in] Denetimin bağlanacağı pencere tutamacı.
pStream
[in] Denetimin özelliklerini başlatmak için kullanılan bir akış işaretçisi. NULL olabilir.
ppUnkContainer
[out] Kapsayıcının öğesini alacak IUnknown bir işaretçinin adresi. NULL olabilir.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Açıklamalar
Bu genel işlev size AtlAxCreateControlEx(lpszName, hWnd, pStream, NULL, NULL, NULL, NULL, NULL); çağrısıyla aynı sonucu verir.
Lisanslı bir ActiveX denetimi oluşturmak için bkz . AtlAxCreateControlLic.
AtlAxCreateControlEx
Bir ActiveX denetimi oluşturur, onu başlatır ve belirtilen pencerede barındırır. Yeni denetim için bir arabirim işaretçisi ve olay havuzu da oluşturulabilir.
ATLAPI AtlAxCreateControlEx(
LPCOLESTR lpszName,
HWND hWnd,
IStream* pStream,
IUnknown** ppUnkContainer,
IUnknown** ppUnkControl,
REFIID iidSink = IID_NULL,
IUnknown* punkSink = NULL);
Parametreler
lpszName
Denetime geçirilecek dize işaretçisi. Aşağıdaki yollardan biriyle biçimlendirilmelidir:
Gibi bir ProgID
"MSCAL.Calendar.7"ClSID gibi bir
"{8E27C92B-1264-101C-8A2F-040224009C02}"URL gibi
"<https://www.microsoft.com>"Etkin bir belgeye başvuru, örneğin
"file://\\\Documents\MyDoc.doc"HTML'nin bir parçası, örneğin
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"Not
"MSHTML:"BIR MSHTML akışı olarak atanması için HTML parçasından önce olmalıdır.
hWnd
[in] Denetimin bağlanacağı pencere tutamacı.
pStream
[in] Denetimin özelliklerini başlatmak için kullanılan bir akış işaretçisi. NULL olabilir.
ppUnkContainer
[out] Kapsayıcının öğesini alacak IUnknown bir işaretçinin adresi. NULL olabilir.
ppUnkControl
[out] Oluşturulan denetimin öğesini alacak IUnknown bir işaretçinin adresi. NULL olabilir.
iidSink
İçerilen nesnedeki giden arabirimin arabirim tanımlayıcısı.
punkSink
İçerilen nesne başarıyla oluşturulduktan sonra iidSinkIUnknownbelirtilen bağlantı noktasına bağlanacak havuz nesnesinin arabirimine yönelik bir işaretçi.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Açıklamalar
AtlAxCreateControlExAtlAxCreateControl'e benzer, ancak yeni oluşturulan denetim için bir arabirim işaretçisi almanıza ve denetim tarafından tetiklenen olayları almak için bir olay havuzu ayarlamanıza da olanak tanır.
Lisanslı bir ActiveX denetimi oluşturmak için bkz . AtlAxCreateControlLicEx.
AtlAxCreateControlLic
Lisanslı bir ActiveX denetimi oluşturur, onu başlatır ve belirtilen pencerede barındırır.
ATLAPI AtlAxCreateControlLic(
LPCOLESTR lpszName,
HWND hWnd,
IStream* pStream,
IUnknown** ppUnkContainer,
BSTR bstrLic = NULL);
Parametreler
lpszName
Denetime geçirilecek dize işaretçisi. Aşağıdaki yollardan biriyle biçimlendirilmelidir:
Gibi bir ProgID
"MSCAL.Calendar.7"ClSID gibi bir
"{8E27C92B-1264-101C-8A2F-040224009C02}"URL gibi
"<https://www.microsoft.com>"Etkin bir belgeye başvuru, örneğin
"file://\\\Documents\MyDoc.doc"HTML'nin bir parçası, örneğin
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"Not
"MSHTML:"BIR MSHTML akışı olarak atanması için HTML parçasından önce olmalıdır.
hWnd
Denetimin bağlanacağı pencere tutamacı.
pStream
Denetimin özelliklerini başlatmak için kullanılan bir akış işaretçisi. NULL olabilir.
ppUnkContainer
Kapsayıcının öğesini alacak IUnknown bir işaretçinin adresi. NULL olabilir.
bstrLic
Denetimin lisansını içeren BSTR.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Örnek
Nasıl kullanılacağına ilişkin bir örnek için bkzAtlAxCreateControlLic Kullanarak ActiveX Denetimlerini Barındırma.
AtlAxCreateControlLicEx
Lisanslı bir ActiveX denetimi oluşturur, onu başlatır ve belirtilen pencerede barındırır. Yeni denetim için bir arabirim işaretçisi ve olay havuzu da oluşturulabilir.
ATLAPI AtlAxCreateControlLicEx(
LPCOLESTR lpszName,
HWND hWnd,
IStream* pStream,
IUnknown** ppUnkContainer,
IUnknown** ppUnkControl,
REFIID iidSink = IID_NULL,
IUnknown* punkSink = NULL,
BSTR bstrLic = NULL);
Parametreler
lpszName
Denetime geçirilecek dize işaretçisi. Aşağıdaki yollardan biriyle biçimlendirilmelidir:
Gibi bir ProgID
"MSCAL.Calendar.7"ClSID gibi bir
"{8E27C92B-1264-101C-8A2F-040224009C02}"URL gibi
"<https://www.microsoft.com>"Etkin bir belgeye başvuru, örneğin
"file://\\\Documents\MyDoc.doc"HTML'nin bir parçası, örneğin
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"Not
"MSHTML:"BIR MSHTML akışı olarak atanması için HTML parçasından önce olmalıdır.
hWnd
Denetimin bağlanacağı pencere tutamacı.
pStream
Denetimin özelliklerini başlatmak için kullanılan bir akış işaretçisi. NULL olabilir.
ppUnkContainer
Kapsayıcının öğesini alacak IUnknown bir işaretçinin adresi. NULL olabilir.
ppUnkControl
[out] Oluşturulan denetimin öğesini alacak IUnknown bir işaretçinin adresi. NULL olabilir.
iidSink
İçerilen nesnedeki giden arabirimin arabirim tanımlayıcısı.
punkSink
İçerilen nesne başarıyla oluşturulduktan sonra iidSinkIUnknownbelirtilen bağlantı noktasına bağlanacak havuz nesnesinin arabirimine yönelik bir işaretçi.
bstrLic
Denetimin lisansını içeren BSTR.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Açıklamalar
AtlAxCreateControlLicExAtlAxCreateControlLic'e benzer, ancak yeni oluşturulan denetime bir arabirim işaretçisi almanıza ve denetim tarafından tetiklenen olayları almak için bir olay havuzu ayarlamanıza olanak tanır.
Örnek
Nasıl kullanılacağına ilişkin bir örnek için bkzAtlAxCreateControlLicEx Kullanarak ActiveX Denetimlerini Barındırma.
AtlAxAttachControl
Önceden oluşturulmuş bir denetimi belirtilen pencereye ekler.
ATLAPI AtlAxAttachControl(
IUnknown* pControl,
HWND hWnd,
IUnknown** ppUnkContainer);
Parametreler
pControl
[in] Denetimin IUnknown işaretçisi.
hWnd
[in] Denetimi barındıracak pencerenin tutamacı.
ppUnkContainer
[out] Kapsayıcı nesnesinin IUnknown işaretçisine işaret eden bir işaretçi.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
Açıklamalar
Aynı anda bir denetim oluşturmak ve eklemek için AtlAxCreateControlEx ve AtlAxCreateControl kullanın.
Not
Çağrılmadan önce AtlAxAttachControleklenen denetim nesnesinin doğru şekilde başlatılması gerekir.
AtlAxGetHost
Belirli bir pencere için (varsa), kapsayıcıya tanıtıcısını göz önünde bulundurarak doğrudan bir arabirim işaretçisi alır.
ATLAPI AtlAxGetHost(HWND h, IUnknown** pp);
Parametreler
h
[in] Denetimi barındıran pencerenin tutamacı.
Pp
[out] Denetimin IUnknown kapsayıcısı.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
AtlAxGetControl
Belirli bir pencere içinde yer alan denetim için, tanıcısını göz önünde bulundurarak doğrudan arabirim işaretçisi alır.
ATLAPI AtlAxGetControl(HWND h, IUnknown** pp);
Parametreler
h
[in] Denetimi barındıran pencerenin tutamacı.
Pp
[out] IUnknown Barındırılan denetimin.
Dönüş Değeri
Standart HRESULT değerlerinden biri.
AtlSetChildSite
Alt nesnenin sitesini üst nesnenin sitesine ayarlamak için IUnknown bu işlevi çağırın.
HRESULT AtlSetChildSite(IUnknown* punkChild, IUnknown* punkParent);
Parametreler
punkChild
[in] Alt öğe IUnknown arabiriminin işaretçisi.
punkParent
[in] Üst öğesinin IUnknown arabirimine ilişkin bir işaretçi.
Dönüş Değeri
Standart bir HRESULT değeri.
AtlAxWinInit
Bu işlev, "AtlAxWin80" ve "AtlAxWinLic80" pencere sınıflarının yanı sıra birkaç özel pencere iletisi kaydederek ATL'nin denetim barındırma kodunu başlatır.
ATLAPI_(BOOL) AtlAxWinInit();
Dönüş Değeri
Denetim barındırma kodunun başlatılması başarılı olursa sıfır olmayan; aksi takdirde YANLIŞ.
Açıklamalar
ATL denetimi barındırma API'sini kullanmadan önce bu işlev çağrılmalıdır. Bu işleve yapılan çağrının ardından" AtlAxWin" pencere sınıfı, Windows SDK'da açıklandığı gibi CreateWindow veya CreateWindowEx çağrılarında kullanılabilir.
AtlAxWinTerm
Bu işlev, "AtlAxWin80" ve "AtlAxWinLic80" pencere sınıflarının kaydını kaldırarak ATL'nin denetim barındırma kodunun kaydını açar.
inline BOOL AtlAxWinTerm();
Dönüş Değeri
Her zaman DOĞRU döndürür.
Açıklamalar
Bu işlev, Windows SDK'sında açıklandığı gibi UnregisterClass'ı çağırır.
AtlAxWinInit'i çağırdıysanız ve artık konak pencereleri oluşturmanız gerekmiyorsa mevcut tüm konak pencereleri yok edildikten sonra temizlemek için bu işlevi çağırabilirsiniz. Bu işlevi çağırmazsanız, işlem sonlandırıldığında pencere sınıfının kaydı otomatik olarak silinir.
AtlGetObjectSourceInterface
Bir nesnenin varsayılan kaynak arabirimi hakkında bilgi almak için bu işlevi çağırın.
ATLAPI AtlGetObjectSourceInterface(
IUnknown* punkObj,
GUID* plibid,
IID* piid,
unsigned short* pdwMajor,
unsigned short* pdwMinor);
Parametreler
punkObj
[in] Bilgi döndürülecek nesneye yönelik bir işaretçi.
plibid
[out] Kaynak arabirimin tanımını içeren tür kitaplığının LIBID işaretçisi.
piid
[out] Nesnenin varsayılan kaynak arabiriminin arabirim kimliğinin işaretçisi.
pdwMajor
[out] Kaynak arabirimin tanımını içeren tür kitaplığının ana sürüm numarasının işaretçisi.
pdwMinor
[out] Kaynak arabirimin tanımını içeren tür kitaplığının ikincil sürüm numarasının işaretçisi.
Dönüş Değeri
Standart bir HRESULT değeri.
Açıklamalar
AtlGetObjectSourceInterface , varsayılan kaynak arabirimin arabirim kimliğini ve bu arabirimi açıklayan tür kitaplığının LIBID ve ana ve ikincil sürüm numaralarını sağlayabilir.
Not
Bu işlevin istenen bilgileri başarıyla alabilmesi için, punkObj tarafından temsil edilen nesnenin uygulamalı IDispatch (ve aracılığıyla IDispatch::GetTypeInfotür bilgilerini döndürmelidir) ve ayrıca veya IProvideClassInfo2'yi IPersist de uygulaması gerekir. Kaynak arabiriminin tür bilgileri, için tür bilgileriyle IDispatchaynı tür kitaplığında olmalıdır.
Örnek
Aşağıdaki örnekte, CEasySinktemel bileşenlere geçirebileceğiniz IDispEventImpl şablon bağımsız değişkenlerinin sayısını azaltan bir olay havuzu sınıfını nasıl tanımlayabileceğiniz gösterilmektedir.
EasyAdviseve EasyUnadvise DispEventAdvise veya DispEventUnadviseAtlGetObjectSourceInterface çağrısından önce IDispEventImpl üyelerini başlatmak için kullanın.
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);
}
};