Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Deze functies bieden ondersteuning voor het maken van dialoogvensters en voor het maken, hosten en licenties van ActiveX-besturingselementen.
Belangrijk
De functies in de volgende tabel kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.
| Functie | Description |
|---|---|
| AtlAxDialogBox | Hiermee maakt u een modaal dialoogvenster op basis van een dialoogvenstersjabloon van de gebruiker. Het resulterende dialoogvenster kan ActiveX-besturingselementen bevatten. |
| AtlAxCreateDialog | Hiermee maakt u een modusloos dialoogvenster op basis van een dialoogvenstersjabloon van de gebruiker. Het resulterende dialoogvenster kan ActiveX-besturingselementen bevatten. |
| AtlAxCreateControl | Hiermee maakt u een ActiveX-besturingselement, initialiseert u dit en hostt u dit in het opgegeven venster. |
| AtlAxCreateControlEx | Hiermee maakt u een ActiveX-besturingselement, initialiseert het, hostt u het in het opgegeven venster en haalt u een interfaceaanwijzer (of aanwijzers) op uit het besturingselement. |
| AtlAxCreateControlLic | Hiermee maakt u een gelicentieerd ActiveX-besturingselement, initialiseert het en host u het in het opgegeven venster. |
| AtlAxCreateControlLicEx | Hiermee maakt u een gelicentieerd ActiveX-besturingselement, initialiseert het, hostt u het in het opgegeven venster en haalt u een interfaceaanwijzer (of aanwijzers) op uit het besturingselement. |
| AtlAxAttachControl | Hiermee koppelt u een eerder gemaakt besturingselement aan het opgegeven venster. |
| AtlAxGetHost | Wordt gebruikt voor het verkrijgen van een directe interface-aanwijzer naar de container voor een opgegeven venster (indien van toepassing), gezien de ingang ervan. |
| AtlAxGetControl | Wordt gebruikt om een directe interface-aanwijzer te verkrijgen naar het besturingselement in een opgegeven venster (indien van toepassing), gezien de ingang ervan. |
| AtlSetChildSite | Initialiseert de IUnknown onderliggende site. |
| AtlAxWinInit | Initialiseert de hostingcode voor AxWin-objecten. |
| AtlAxWinTerm | Hiermee wordt de hostingcode voor AxWin-objecten niet geïnitialiseerd. |
| AtlGetObjectSourceInterface | Retourneert informatie over de standaardbroninterface van een object. |
Requirements
Header: atlhost.h
AtlAxDialogBox
Hiermee maakt u een modaal dialoogvenster op basis van een dialoogvenstersjabloon van de gebruiker.
ATLAPI_(int) AtlAxDialogBox(
HINSTANCE hInstance,
LPCWSTR lpTemplateName,
HWND hWndParent,
DLGPROC lpDialogProc,
LPARAM dwInitParam);
Parameterwaarden
hInstance
[in] Identificeert een exemplaar van de module waarvan het uitvoerbare bestand de dialoogvenstersjabloon bevat.
lpTemplateName
[in] Hiermee wordt de dialoogvenstersjabloon geïdentificeerd. Deze parameter is ofwel de aanwijzer naar een tekenreeks die null-beëindigd is, waarmee de naam van de dialoogvenstersjabloon of een geheel getal wordt opgegeven waarmee de resource-id van de dialoogvenstersjabloon wordt opgegeven. Als de parameter een resource-id opgeeft, moet het woord in hoge volgorde nul zijn en moet het woord in lage volgorde de id bevatten. U kunt de macro MAKEINTRESOURCE gebruiken om deze waarde te maken.
hWndParent
[in] Hiermee geeft u het venster aan dat eigenaar is van het dialoogvenster.
lpDialogProc
[in] Verwijst naar de procedure van het dialoogvenster. Zie DialogProc voor meer informatie over de dialoogvensterprocedure.
dwInitParam
[in] Hiermee geeft u de waarde die moet worden doorgegeven aan het dialoogvenster in de parameter lParam van het WM_INITDIALOG bericht.
Retourwaarde
Een van de standaard HRESULT-waarden.
Opmerkingen
Als u een dialoogvenstersjabloon wilt gebruiken AtlAxDialogBox die een ActiveX-besturingselement bevat, geeft u een geldige CLSID-, APPID- of URL-tekenreeks op als het tekstveld van de sectie CONTROL van de dialoogvensterresource, samen met 'AtlAxWin80' als het veld klassenaam onder dezelfde sectie. Hieronder ziet u hoe een geldige CONTROL-sectie eruit kan zien:
CONTROL "{04FE35E9-ADBC-4f1d-83FE-8FA4D1F71C7F}", IDC_TEST,
"AtlAxWin80", WS_GROUP | WS_TABSTOP, 0, 0, 100, 100
Zie Resources maken voor meer informatie over het bewerken van resourcescripts. Zie Common Control Parameters onder Windows SDK: SDK Tools voor meer informatie over het beheren van resourcedefinitie-instructies.
Raadpleeg dialoogvensters en CreateDialogParam in de Windows SDK voor meer informatie over dialoogvensters in het algemeen.
AtlAxCreateDialog
Hiermee maakt u een modusloos dialoogvenster op basis van een dialoogvenstersjabloon van de gebruiker.
ATLAPI_(HWND) AtlAxCreateDialog(
HINSTANCE hInstance,
LPCWSTR lpTemplateName,
HWND hWndParent,
DLGPROC lpDialogProc,
LPARAM dwInitParam);
Parameterwaarden
hInstance
[in] Identificeert een exemplaar van de module waarvan het uitvoerbare bestand de dialoogvenstersjabloon bevat.
lpTemplateName
[in] Hiermee wordt de dialoogvenstersjabloon geïdentificeerd. Deze parameter is ofwel de aanwijzer naar een tekenreeks die null-beëindigd is, waarmee de naam van de dialoogvenstersjabloon of een geheel getal wordt opgegeven waarmee de resource-id van de dialoogvenstersjabloon wordt opgegeven. Als de parameter een resource-id opgeeft, moet het woord in hoge volgorde nul zijn en moet het woord in lage volgorde de id bevatten. U kunt de macro MAKEINTRESOURCE gebruiken om deze waarde te maken.
hWndParent
[in] Hiermee geeft u het venster aan dat eigenaar is van het dialoogvenster.
lpDialogProc
[in] Verwijst naar de procedure van het dialoogvenster. Zie DialogProc voor meer informatie over de dialoogvensterprocedure.
dwInitParam
[in] Hiermee geeft u de waarde die moet worden doorgegeven aan het dialoogvenster in de parameter lParam van het WM_INITDIALOG bericht.
Retourwaarde
Een van de standaard HRESULT-waarden.
Opmerkingen
Het resulterende dialoogvenster kan ActiveX-besturingselementen bevatten.
Zie CreateDialog en CreateDialogParam in de Windows SDK.
AtlAxCreateControl
Hiermee maakt u een ActiveX-besturingselement, initialiseert u dit en hostt u dit in het opgegeven venster.
ATLAPI AtlAxCreateControl(
LPCOLESTR lpszName,
HWND hWnd,
IStream* pStream,
IUnknown** ppUnkContainer);
Parameterwaarden
lpszName
Een aanwijzer naar een tekenreeks die moet worden doorgegeven aan het besturingselement. Moet op een van de volgende manieren worden opgemaakt:
Een ProgID zoals
"MSCAL.Calendar.7"Een CLSID, zoals
"{8E27C92B-1264-101C-8A2F-040224009C02}"Een URL zoals
"<https://www.microsoft.com>"Een verwijzing naar een actief document, zoals
"file://\\\Documents\MyDoc.doc"Een fragment van HTML, zoals
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"Opmerking
"MSHTML:"moet voorafgaan aan het HTML-fragment, zodat het wordt aangewezen als een MSHTML-stream.
hWnd
[in] Greep aan het venster waaraan het besturingselement wordt gekoppeld.
pStream
[in] Een aanwijzer naar een stroom die wordt gebruikt om de eigenschappen van het besturingselement te initialiseren. Kan NULL zijn.
ppUnkContainer
[uit] Het adres van een aanwijzer die de IUnknown container ontvangt. Kan NULL zijn.
Retourwaarde
Een van de standaard HRESULT-waarden.
Opmerkingen
Deze globale functie geeft u hetzelfde resultaat als het aanroepen van AtlAxCreateControlEx(lpszName, hWnd, pStream, NULL, NULL, NULL, NULL, NULL);.
Zie AtlAxCreateControlLic om een gelicentieerd ActiveX-besturingselement te maken.
AtlAxCreateControlEx
Hiermee maakt u een ActiveX-besturingselement, initialiseert u dit en hostt u dit in het opgegeven venster. Er kan ook een interfaceaanwijzer en gebeurtenissink voor het nieuwe besturingselement worden gemaakt.
ATLAPI AtlAxCreateControlEx(
LPCOLESTR lpszName,
HWND hWnd,
IStream* pStream,
IUnknown** ppUnkContainer,
IUnknown** ppUnkControl,
REFIID iidSink = IID_NULL,
IUnknown* punkSink = NULL);
Parameterwaarden
lpszName
Een aanwijzer naar een tekenreeks die moet worden doorgegeven aan het besturingselement. Moet op een van de volgende manieren worden opgemaakt:
Een ProgID zoals
"MSCAL.Calendar.7"Een CLSID, zoals
"{8E27C92B-1264-101C-8A2F-040224009C02}"Een URL zoals
"<https://www.microsoft.com>"Een verwijzing naar een actief document, zoals
"file://\\\Documents\MyDoc.doc"Een fragment van HTML, zoals
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"Opmerking
"MSHTML:"moet voorafgaan aan het HTML-fragment, zodat het wordt aangewezen als een MSHTML-stream.
hWnd
[in] Greep aan het venster waaraan het besturingselement wordt gekoppeld.
pStream
[in] Een aanwijzer naar een stroom die wordt gebruikt om de eigenschappen van het besturingselement te initialiseren. Kan NULL zijn.
ppUnkContainer
[uit] Het adres van een aanwijzer die de IUnknown container ontvangt. Kan NULL zijn.
ppUnkControl
[uit] Het adres van een aanwijzer die het IUnknown gemaakte besturingselement ontvangt. Kan NULL zijn.
iidSink
De interface-id van een uitgaande interface op het ingesloten object.
punkSink
Een aanwijzer naar de IUnknown interface van het sink-object dat moet worden verbonden met het verbindingspunt dat is opgegeven door iidSink op het ingesloten object nadat het ingesloten object is gemaakt.
Retourwaarde
Een van de standaard HRESULT-waarden.
Opmerkingen
AtlAxCreateControlEx is vergelijkbaar met AtlAxCreateControl , maar u kunt ook een interfaceaanwijzer ontvangen naar het zojuist gemaakte besturingselement en een gebeurtenissink instellen om gebeurtenissen te ontvangen die door het besturingselement worden geactiveerd.
Zie AtlAxCreateControlLicEx om een gelicentieerd ActiveX-besturingselement te maken.
AtlAxCreateControlLic
Hiermee maakt u een gelicentieerd ActiveX-besturingselement, initialiseert het en host u het in het opgegeven venster.
ATLAPI AtlAxCreateControlLic(
LPCOLESTR lpszName,
HWND hWnd,
IStream* pStream,
IUnknown** ppUnkContainer,
BSTR bstrLic = NULL);
Parameterwaarden
lpszName
Een aanwijzer naar een tekenreeks die moet worden doorgegeven aan het besturingselement. Moet op een van de volgende manieren worden opgemaakt:
Een ProgID zoals
"MSCAL.Calendar.7"Een CLSID, zoals
"{8E27C92B-1264-101C-8A2F-040224009C02}"Een URL zoals
"<https://www.microsoft.com>"Een verwijzing naar een actief document, zoals
"file://\\\Documents\MyDoc.doc"Een fragment van HTML, zoals
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"Opmerking
"MSHTML:"moet voorafgaan aan het HTML-fragment, zodat het wordt aangewezen als een MSHTML-stream.
hWnd
Greep aan het venster waaraan het besturingselement wordt gekoppeld.
pStream
Een aanwijzer naar een stroom die wordt gebruikt om de eigenschappen van het besturingselement te initialiseren. Kan NULL zijn.
ppUnkContainer
Het adres van een aanwijzer die de IUnknown container ontvangt. Kan NULL zijn.
bstrLic
De BSTR met de licentie voor het besturingselement.
Retourwaarde
Een van de standaard HRESULT-waarden.
Example
Zie ActiveX-besturingselementen hosten met ATL AXHost voor een voorbeeld van hoe u dit kunt gebruiken AtlAxCreateControlLic.
AtlAxCreateControlLicEx
Hiermee maakt u een gelicentieerd ActiveX-besturingselement, initialiseert het en host u het in het opgegeven venster. Er kan ook een interfaceaanwijzer en gebeurtenissink voor het nieuwe besturingselement worden gemaakt.
ATLAPI AtlAxCreateControlLicEx(
LPCOLESTR lpszName,
HWND hWnd,
IStream* pStream,
IUnknown** ppUnkContainer,
IUnknown** ppUnkControl,
REFIID iidSink = IID_NULL,
IUnknown* punkSink = NULL,
BSTR bstrLic = NULL);
Parameterwaarden
lpszName
Een aanwijzer naar een tekenreeks die moet worden doorgegeven aan het besturingselement. Moet op een van de volgende manieren worden opgemaakt:
Een ProgID zoals
"MSCAL.Calendar.7"Een CLSID, zoals
"{8E27C92B-1264-101C-8A2F-040224009C02}"Een URL zoals
"<https://www.microsoft.com>"Een verwijzing naar een actief document, zoals
"file://\\\Documents\MyDoc.doc"Een fragment van HTML, zoals
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"Opmerking
"MSHTML:"moet voorafgaan aan het HTML-fragment, zodat het wordt aangewezen als een MSHTML-stream.
hWnd
Greep aan het venster waaraan het besturingselement wordt gekoppeld.
pStream
Een aanwijzer naar een stroom die wordt gebruikt om de eigenschappen van het besturingselement te initialiseren. Kan NULL zijn.
ppUnkContainer
Het adres van een aanwijzer die de IUnknown container ontvangt. Kan NULL zijn.
ppUnkControl
[uit] Het adres van een aanwijzer die het IUnknown gemaakte besturingselement ontvangt. Kan NULL zijn.
iidSink
De interface-id van een uitgaande interface op het ingesloten object.
punkSink
Een aanwijzer naar de IUnknown interface van het sink-object dat moet worden verbonden met het verbindingspunt dat is opgegeven door iidSink op het ingesloten object nadat het ingesloten object is gemaakt.
bstrLic
De BSTR met de licentie voor het besturingselement.
Retourwaarde
Een van de standaard HRESULT-waarden.
Opmerkingen
AtlAxCreateControlLicEx is vergelijkbaar met AtlAxCreateControlLic , maar u kunt ook een interfaceaanwijzer ontvangen naar het zojuist gemaakte besturingselement en een gebeurtenissink instellen om gebeurtenissen te ontvangen die door het besturingselement zijn geactiveerd.
Example
Zie ActiveX-besturingselementen hosten met ATL AXHost voor een voorbeeld van hoe u dit kunt gebruiken AtlAxCreateControlLicEx.
AtlAxAttachControl
Hiermee koppelt u een eerder gemaakt besturingselement aan het opgegeven venster.
ATLAPI AtlAxAttachControl(
IUnknown* pControl,
HWND hWnd,
IUnknown** ppUnkContainer);
Parameterwaarden
pControl
[in] Een aanwijzer naar het IUnknown besturingselement.
hWnd
[in] Greep naar het venster waarop het besturingselement wordt gehost.
ppUnkContainer
[uit] Een aanwijzer naar een aanwijzer naar het IUnknown containerobject.
Retourwaarde
Een van de standaard HRESULT-waarden.
Opmerkingen
Gebruik AtlAxCreateControlEx en AtlAxCreateControl om tegelijkertijd een besturingselement te maken en te koppelen.
Opmerking
Het besturingselementobject dat wordt gekoppeld, moet correct worden geïnitialiseerd voordat u aanroept AtlAxAttachControl.
AtlAxGetHost
Hiermee haalt u een directe interface-aanwijzer naar de container voor een opgegeven venster (indien van toepassing), op basis van de ingang.
ATLAPI AtlAxGetHost(HWND h, IUnknown** pp);
Parameterwaarden
h
[in] Een ingang naar het venster dat als host fungeert voor het besturingselement.
Pp
[uit] De IUnknown container van het besturingselement.
Retourwaarde
Een van de standaard HRESULT-waarden.
AtlAxGetControl
Hiermee verkrijgt u een directe interface-aanwijzer naar het besturingselement in een opgegeven venster op basis van de ingang.
ATLAPI AtlAxGetControl(HWND h, IUnknown** pp);
Parameterwaarden
h
[in] Een ingang naar het venster dat als host fungeert voor het besturingselement.
Pp
[uit] Het IUnknown besturingselement dat wordt gehost.
Retourwaarde
Een van de standaard HRESULT-waarden.
AtlSetChildSite
Roep deze functie aan om de site van het onderliggende object in te stellen op het IUnknown bovenliggende object.
HRESULT AtlSetChildSite(IUnknown* punkChild, IUnknown* punkParent);
Parameterwaarden
punkChild
[in] Een aanwijzer naar de IUnknown interface van het onderliggende element.
punkParent
[in] Een aanwijzer naar de IUnknown interface van het bovenliggende item.
Retourwaarde
Een standaard HRESULT-waarde.
AtlAxWinInit
Met deze functie initialiseert u de hostcode van het beheer van ATL door de vensterklassen 'AtlAxWin80' en 'AtlAxWinLic80' te registreren, plus een aantal aangepaste vensterberichten.
ATLAPI_(BOOL) AtlAxWinInit();
Retourwaarde
Niet-nul als de initialisatie van de hostcode van het besturingselement is geslaagd; anders ONWAAR.
Opmerkingen
Deze functie moet worden aangeroepen voordat u de HOST-API voor ATL-besturingselementen gebruikt. Na een aanroep van deze functie kan de vensterklasse 'AtlAxWin' worden gebruikt in aanroepen naar CreateWindow of CreateWindowEx, zoals beschreven in de Windows SDK.
AtlAxWinTerm
Met deze functie wordt de hostcode van het beheer van ATL niet geïnitialiseerd door de registratie van de vensterklassen 'AtlAxWin80' en 'AtlAxWinLic80' ongedaan te maken .
inline BOOL AtlAxWinTerm();
Retourwaarde
Retourneert altijd WAAR.
Opmerkingen
Met deze functie wordt UnregisterClass aangeroepen, zoals beschreven in de Windows SDK.
Roep deze functie aan om op te schonen nadat alle bestaande hostvensters zijn vernietigd als u AtlAxWinInit hebt aangeroepen en u geen hostvensters meer hoeft te maken. Als u deze functie niet aanroept, wordt de registratie van de vensterklasse automatisch opgeheven wanneer het proces wordt beëindigd.
AtlGetObjectSourceInterface
Roep deze functie aan om informatie over de standaardbroninterface van een object op te halen.
ATLAPI AtlGetObjectSourceInterface(
IUnknown* punkObj,
GUID* plibid,
IID* piid,
unsigned short* pdwMajor,
unsigned short* pdwMinor);
Parameterwaarden
punkObj
[in] Een aanwijzer naar het object waarvoor informatie moet worden geretourneerd.
plibid
[uit] Een aanwijzer naar de LIBID van de typebibliotheek die de definitie van de broninterface bevat.
piid
[uit] Een aanwijzer naar de interface-id van de standaardbroninterface van het object.
pdwMajor
[uit] Een aanwijzer naar het primaire versienummer van de typebibliotheek die de definitie van de broninterface bevat.
pdwMinor
[uit] Een aanwijzer naar het secundaire versienummer van de typebibliotheek met de definitie van de broninterface.
Retourwaarde
Een standaard HRESULT-waarde.
Opmerkingen
AtlGetObjectSourceInterface kan u voorzien van de interface-id van de standaardbroninterface, samen met de LIBID en de primaire en secundaire versienummers van de typebibliotheek die die interface beschrijft.
Opmerking
Voor deze functie om de aangevraagde informatie op te halen, moet het object dat wordt punkObj vertegenwoordigd (en retourtype-informatie viaIDispatch::GetTypeInfo) implementeren IDispatch en moet het ook implementeren IProvideClassInfo2 of IPersist. De typegegevens voor de broninterface moeten zich in dezelfde typebibliotheek bevinden als de typegegevens voor IDispatch.
Example
In het onderstaande voorbeeld ziet u hoe u een gebeurtenissinkklasse kunt definiëren, CEasySinkwaardoor het aantal sjabloonargumenten dat u kunt doorgeven aan IDispEventImpl de bare essentials, wordt verminderd.
EasyAdvise en EasyUnadvise gebruikt AtlGetObjectSourceInterface om de IDispEventImpl-leden te initialiseren voordat u DispEventAdvise of DispEventUnadvise aanroept.
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);
}
};