Algemene functies voor samengesteld besturingselement

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);
   }
};

Zie ook

Functies
Macro's voor samengestelde bediening