Globale Funktionen zusammengesetzter Steuerelemente

Diese Funktionen unterstützen das Erstellen von Dialogfeldern und das Erstellen, Hosten und Lizenzierung von ActiveX-Steuerelementen.

Wichtig

Die in der folgenden Tabelle aufgeführten Funktionen können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Funktion Beschreibung
AtlAxDialogBox Erstellt ein modales Dialogfeld aus einer vom Benutzer angegebenen Dialogfeldvorlage. Das resultierende Dialogfeld kann ActiveX-Steuerelemente enthalten.
AtlAxCreateDialog Erstellt ein nicht modales Dialogfeld aus einer vom Benutzer angegebenen Dialogfeldvorlage. Das resultierende Dialogfeld kann ActiveX-Steuerelemente enthalten.
AtlAxCreateControl Erstellt ein ActiveX-Steuerelement, initialisiert es und hostet es im angegebenen Fenster.
AtlAxCreateControlEx Erstellt ein ActiveX-Steuerelement, initialisiert es, hostet es im angegebenen Fenster und ruft einen Schnittstellenzeiger (oder Zeiger) vom Steuerelement ab.
AtlAxCreateControlLic Erstellt ein lizenziertes ActiveX-Steuerelement, initialisiert es und hostet es im angegebenen Fenster.
AtlAxCreateControlLicEx Erstellt ein lizenziertes ActiveX-Steuerelement, initialisiert es, hostet es im angegebenen Fenster und ruft einen Schnittstellenzeiger (oder Zeiger) vom Steuerelement ab.
AtlAxAttachControl Fügt ein bereits erstelltes Steuerelement an das angegebene Fenster an.
AtlAxGetHost Wird verwendet, um einen direkten Schnittstellenzeiger auf den Container für ein angegebenes Fenster (falls vorhanden) zu erhalten, je nach Handle.
AtlAxGetControl Wird verwendet, um einen direkten Schnittstellenzeiger auf das Steuerelement abzurufen, das in einem angegebenen Fenster enthalten ist (sofern vorhanden), je nach Ziehpunkt.
AtlSetChildSite Initialisiert die IUnknown untergeordnete Website.
AtlAxWinInit Initialisiert den Hostingcode für AxWin-Objekte.
AtlAxWinTerm Hebt die Initialisierung des Hostingcodes für AxWin-Objekte auf.
AtlGetObjectSourceInterface Gibt Informationen zur Standardquellschnittstelle eines Objekts zurück.

Anforderungen

Kopfzeile: atlhost.h

AtlAxDialogBox

Erstellt ein modales Dialogfeld aus einer vom Benutzer angegebenen Dialogfeldvorlage.

ATLAPI_(int) AtlAxDialogBox(
    HINSTANCE hInstance,
    LPCWSTR lpTemplateName,
    HWND hWndParent,
    DLGPROC lpDialogProc,
    LPARAM dwInitParam);

Parameter

hInstance
[in] Identifiziert eine Instanz des Moduls, dessen ausführbare Datei die Dialogfeldvorlage enthält.

lpTemplateName
[in] Identifiziert die Dialogfeldvorlage. Dieser Parameter ist entweder der Zeiger auf eine mit Null beendete Zeichenfolge, die den Namen der Dialogfeldvorlage oder einen ganzzahligen Wert angibt, der den Ressourcenbezeichner der Dialogfeldvorlage angibt. Wenn der Parameter einen Ressourcenbezeichner angibt, muss das Wort mit hoher Reihenfolge null sein, und das Wort mit niedriger Reihenfolge muss den Bezeichner enthalten. Sie können das MAKEINTRESOURCE-Makro verwenden, um diesen Wert zu erstellen.

hWndParent
[in] Identifiziert das Fenster, das das Dialogfeld besitzt.

lpDialogProc
[in] Verweist auf die Dialogfeldprozedur. Weitere Informationen zur Dialogfeldprozedur finden Sie unter DialogProc.

dwInitParam
[in] Gibt den Wert an, der an das Dialogfeld im lParam-Parameter der WM_INITDIALOG Nachricht übergeben werden soll.

Rückgabewert

Einer der HRESULT-Standardwerte.

Hinweise

AtlAxDialogBox Wenn Sie eine Dialogfeldvorlage verwenden möchten, die ein ActiveX-Steuerelement enthält, geben Sie eine gültige CLSID-, APPID- oder URL-Zeichenfolge als Textfeld des STEUERELEMENT-Abschnitts der Dialogressource zusammen mit "AtlAxWin80" als Klassennamenfeld unter demselben Abschnitt an. Im Folgenden wird veranschaulicht, wie ein gültiger CONTROL-Abschnitt aussehen kann:

CONTROL    "{04FE35E9-ADBC-4f1d-83FE-8FA4D1F71C7F}", IDC_TEST,
    "AtlAxWin80", WS_GROUP | WS_TABSTOP, 0, 0, 100, 100

Weitere Informationen zum Bearbeiten von Ressourcenskripts finden Sie unter How to: Create Resources. Weitere Informationen zu Steuerelementressourcendefinitionsanweisungen finden Sie unter Windows SDK: SDK-Tools unter "Common Control Parameters ".

Weitere Informationen zu Dialogfeldern im Allgemeinen finden Sie unter "DialogBox " und "CreateDialogParam " im Windows SDK.

AtlAxCreateDialog

Erstellt ein nicht modales Dialogfeld aus einer vom Benutzer angegebenen Dialogfeldvorlage.

ATLAPI_(HWND) AtlAxCreateDialog(
    HINSTANCE hInstance,
    LPCWSTR lpTemplateName,
    HWND hWndParent,
    DLGPROC lpDialogProc,
    LPARAM dwInitParam);

Parameter

hInstance
[in] Identifiziert eine Instanz des Moduls, dessen ausführbare Datei die Dialogfeldvorlage enthält.

lpTemplateName
[in] Identifiziert die Dialogfeldvorlage. Dieser Parameter ist entweder der Zeiger auf eine mit Null beendete Zeichenfolge, die den Namen der Dialogfeldvorlage oder einen ganzzahligen Wert angibt, der den Ressourcenbezeichner der Dialogfeldvorlage angibt. Wenn der Parameter einen Ressourcenbezeichner angibt, muss das Wort mit hoher Reihenfolge null sein, und das Wort mit niedriger Reihenfolge muss den Bezeichner enthalten. Sie können das MAKEINTRESOURCE-Makro verwenden, um diesen Wert zu erstellen.

hWndParent
[in] Identifiziert das Fenster, das das Dialogfeld besitzt.

lpDialogProc
[in] Verweist auf die Dialogfeldprozedur. Weitere Informationen zur Dialogfeldprozedur finden Sie unter DialogProc.

dwInitParam
[in] Gibt den Wert an, der an das Dialogfeld im lParam-Parameter der WM_INITDIALOG Nachricht übergeben werden soll.

Rückgabewert

Einer der HRESULT-Standardwerte.

Hinweise

Das resultierende Dialogfeld kann ActiveX-Steuerelemente enthalten.

Siehe CreateDialog und CreateDialogParam im Windows SDK.

AtlAxCreateControl

Erstellt ein ActiveX-Steuerelement, initialisiert es und hostet es im angegebenen Fenster.

ATLAPI AtlAxCreateControl(
    LPCOLESTR lpszName,
    HWND hWnd,
    IStream* pStream,
    IUnknown** ppUnkContainer);

Parameter

lpszName
Ein Zeiger auf eine Zeichenfolge, die an das Steuerelement übergeben werden soll. Muss auf eine der folgenden Arten formatiert werden:

  • Eine ProgID, z. B. "MSCAL.Calendar.7"

  • Eine CLSID wie z. B. "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • Eine URL, z. B. "<https://www.microsoft.com>"

  • Ein Verweis auf ein aktives Dokument, z. B. "file://\\\Documents\MyDoc.doc"

  • Ein HTML-Fragment, z. B. "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Hinweis

    "MSHTML:" muss dem HTML-Fragment vorangestellt werden, damit es als MSHTML-Stream festgelegt wird.

hWnd
[in] Behandeln Sie das Fenster, an das das Steuerelement angefügt wird.

pStream
[in] Ein Zeiger auf einen Datenstrom, der zum Initialisieren der Eigenschaften des Steuerelements verwendet wird. Kann den Wert NULL haben.

ppUnkContainer
[out] Die Adresse eines Zeigers, der den IUnknown Container empfängt. Kann den Wert NULL haben.

Rückgabewert

Einer der HRESULT-Standardwerte.

Hinweise

Diese globale Funktion gibt Ihnen das gleiche Ergebnis wie das Aufrufen von AtlAxCreateControlEx(lpszName, hWnd, pStream, NULL, NULL, NULL, NULL);.

Informationen zum Erstellen eines lizenzierten ActiveX-Steuerelements finden Sie unter AtlAxCreateControlLic.

AtlAxCreateControlEx

Erstellt ein ActiveX-Steuerelement, initialisiert es und hostet es im angegebenen Fenster. Weiterhin können ein Schnittstellenzeiger und eine Ereignissenke für das neue Steuerelement erstellt werden.

ATLAPI AtlAxCreateControlEx(
    LPCOLESTR lpszName,
    HWND hWnd,
    IStream* pStream,
    IUnknown** ppUnkContainer,
    IUnknown** ppUnkControl,
    REFIID iidSink = IID_NULL,
    IUnknown* punkSink = NULL);

Parameter

lpszName
Ein Zeiger auf eine Zeichenfolge, die an das Steuerelement übergeben werden soll. Muss auf eine der folgenden Arten formatiert werden:

  • Eine ProgID, z. B. "MSCAL.Calendar.7"

  • Eine CLSID wie z. B. "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • Eine URL, z. B. "<https://www.microsoft.com>"

  • Ein Verweis auf ein aktives Dokument, z. B. "file://\\\Documents\MyDoc.doc"

  • Ein HTML-Fragment, z. B. "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Hinweis

    "MSHTML:" muss dem HTML-Fragment vorangestellt werden, damit es als MSHTML-Stream festgelegt wird.

hWnd
[in] Behandeln Sie das Fenster, an das das Steuerelement angefügt wird.

pStream
[in] Ein Zeiger auf einen Datenstrom, der zum Initialisieren der Eigenschaften des Steuerelements verwendet wird. Kann den Wert NULL haben.

ppUnkContainer
[out] Die Adresse eines Zeigers, der den IUnknown Container empfängt. Kann den Wert NULL haben.

ppUnkControl
[out] Die Adresse eines Zeigers, der das IUnknown erstellte Steuerelement empfängt. Kann den Wert NULL haben.

iidSink
Der Schnittstellenbezeichner einer ausgehenden Schnittstelle für das enthaltene Objekt.

PunkSink
Ein Zeiger auf die IUnknown Schnittstelle des Sinkobjekts, das mit dem durch iidSink für das enthaltene Objekt angegebenen Verbindungspunkt verbunden werden soll, nachdem das enthaltene Objekt erfolgreich erstellt wurde.

Rückgabewert

Einer der HRESULT-Standardwerte.

Hinweise

AtlAxCreateControlExähnelt AtlAxCreateControl, ermöglicht ihnen aber auch das Empfangen eines Schnittstellenzeigers auf das neu erstellte Steuerelement und das Einrichten einer Ereignissenke zum Empfangen von Ereignissen, die vom Steuerelement ausgelöst werden.

Informationen zum Erstellen eines lizenzierten ActiveX-Steuerelements finden Sie unter AtlAxCreateControlLicEx.

AtlAxCreateControlLic

Erstellt ein lizenziertes ActiveX-Steuerelement, initialisiert es und hostet es im angegebenen Fenster.

ATLAPI AtlAxCreateControlLic(
    LPCOLESTR lpszName,
    HWND hWnd,
    IStream* pStream,
    IUnknown** ppUnkContainer,
    BSTR bstrLic = NULL);

Parameter

lpszName
Ein Zeiger auf eine Zeichenfolge, die an das Steuerelement übergeben werden soll. Muss auf eine der folgenden Arten formatiert werden:

  • Eine ProgID, z. B. "MSCAL.Calendar.7"

  • Eine CLSID wie z. B. "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • Eine URL, z. B. "<https://www.microsoft.com>"

  • Ein Verweis auf ein aktives Dokument, z. B. "file://\\\Documents\MyDoc.doc"

  • Ein HTML-Fragment, z. B. "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Hinweis

    "MSHTML:" muss dem HTML-Fragment vorangestellt werden, damit es als MSHTML-Stream festgelegt wird.

hWnd
Behandeln Sie das Fenster, an das das Steuerelement angefügt wird.

pStream
Ein Zeiger auf einen Datenstrom, der zum Initialisieren der Eigenschaften des Steuerelements verwendet wird. Kann den Wert NULL haben.

ppUnkContainer
Die Adresse eines Zeigers, der den IUnknown Container empfängt. Kann den Wert NULL haben.

bstrLic
Der BSTR, der die Lizenz für das Steuerelement enthält.

Rückgabewert

Einer der HRESULT-Standardwerte.

Beispiel

Ein Beispiel für die Verwendung AtlAxCreateControlLicfinden Sie unter Hosten von ActiveX-Steuerelementen mit ATL AXHost.

AtlAxCreateControlLicEx

Erstellt ein lizenziertes ActiveX-Steuerelement, initialisiert es und hostet es im angegebenen Fenster. Weiterhin können ein Schnittstellenzeiger und eine Ereignissenke für das neue Steuerelement erstellt werden.

ATLAPI AtlAxCreateControlLicEx(
    LPCOLESTR lpszName,
    HWND hWnd,
    IStream* pStream,
    IUnknown** ppUnkContainer,
    IUnknown** ppUnkControl,
    REFIID iidSink = IID_NULL,
    IUnknown* punkSink = NULL,
    BSTR bstrLic = NULL);

Parameter

lpszName
Ein Zeiger auf eine Zeichenfolge, die an das Steuerelement übergeben werden soll. Muss auf eine der folgenden Arten formatiert werden:

  • Eine ProgID, z. B. "MSCAL.Calendar.7"

  • Eine CLSID wie z. B. "{8E27C92B-1264-101C-8A2F-040224009C02}"

  • Eine URL, z. B. "<https://www.microsoft.com>"

  • Ein Verweis auf ein aktives Dokument, z. B. "file://\\\Documents\MyDoc.doc"

  • Ein HTML-Fragment, z. B. "MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"

    Hinweis

    "MSHTML:" muss dem HTML-Fragment vorangestellt werden, damit es als MSHTML-Stream festgelegt wird.

hWnd
Behandeln Sie das Fenster, an das das Steuerelement angefügt wird.

pStream
Ein Zeiger auf einen Datenstrom, der zum Initialisieren der Eigenschaften des Steuerelements verwendet wird. Kann den Wert NULL haben.

ppUnkContainer
Die Adresse eines Zeigers, der den IUnknown Container empfängt. Kann den Wert NULL haben.

ppUnkControl
[out] Die Adresse eines Zeigers, der das IUnknown erstellte Steuerelement empfängt. Kann den Wert NULL haben.

iidSink
Der Schnittstellenbezeichner einer ausgehenden Schnittstelle für das enthaltene Objekt.

PunkSink
Ein Zeiger auf die IUnknown Schnittstelle des Sinkobjekts, das mit dem durch iidSink für das enthaltene Objekt angegebenen Verbindungspunkt verbunden werden soll, nachdem das enthaltene Objekt erfolgreich erstellt wurde.

bstrLic
Der BSTR, der die Lizenz für das Steuerelement enthält.

Rückgabewert

Einer der HRESULT-Standardwerte.

Hinweise

AtlAxCreateControlLicExähnelt AtlAxCreateControlLic, ermöglicht ihnen aber auch das Empfangen eines Schnittstellenzeigers auf das neu erstellte Steuerelement und das Einrichten einer Ereignissenke zum Empfangen von Ereignissen, die vom Steuerelement ausgelöst werden.

Beispiel

Ein Beispiel für die Verwendung AtlAxCreateControlLicExfinden Sie unter Hosten von ActiveX-Steuerelementen mit ATL AXHost.

AtlAxAttachControl

Fügt ein bereits erstelltes Steuerelement an das angegebene Fenster an.

ATLAPI AtlAxAttachControl(
    IUnknown* pControl,
    HWND hWnd,
    IUnknown** ppUnkContainer);

Parameter

pControl
[in] Ein Zeiger auf das IUnknown Steuerelement.

hWnd
[in] Behandeln Sie das Fenster, in dem das Steuerelement gehostet wird.

ppUnkContainer
[out] Ein Zeiger auf einen Zeiger auf das IUnknown Containerobjekt.

Rückgabewert

Einer der HRESULT-Standardwerte.

Hinweise

Verwenden Sie AtlAxCreateControlEx und AtlAxCreateControl , um ein Steuerelement gleichzeitig zu erstellen und anzufügen.

Hinweis

Das angefügte Steuerelementobjekt muss vor dem Aufrufen AtlAxAttachControlkorrekt initialisiert werden.

AtlAxGetHost

Ruft anhand eines bestimmten Fensters einen direkten Schnittstellenzeiger zu dem Container für das Fenster (sofern vorhanden) ab.

ATLAPI AtlAxGetHost(HWND h, IUnknown** pp);

Parameter

h
[in] Ein Handle für das Fenster, in dem das Steuerelement gehostet wird.

PP
[out] Der IUnknown Container des Steuerelements.

Rückgabewert

Einer der HRESULT-Standardwerte.

AtlAxGetControl

Ruft anhand des Handles eines angegebenen Fensters einen direkten Schnittstellenzeiger zu dem Steuerelement ab, das in dem Fenster enthalten ist.

ATLAPI AtlAxGetControl(HWND h, IUnknown** pp);

Parameter

h
[in] Ein Handle für das Fenster, in dem das Steuerelement gehostet wird.

PP
[out] Das IUnknown Steuerelement, das gehostet wird.

Rückgabewert

Einer der HRESULT-Standardwerte.

AtlSetChildSite

Rufen Sie diese Funktion auf, um die Website des untergeordneten Objekts auf das IUnknown übergeordnete Objekt festzulegen.

HRESULT AtlSetChildSite(IUnknown* punkChild, IUnknown* punkParent);

Parameter

punkChild
[in] Ein Zeiger auf die IUnknown Schnittstelle des untergeordneten Elements.

PunkParent
[in] Ein Zeiger auf die IUnknown Schnittstelle des übergeordneten Elements.

Rückgabewert

Ein HRESULT-Standardwert.

AtlAxWinInit

Diese Funktion initialisiert den ATL-Steuerelementhostingcode, indem die Fensterklassen "AtlAxWin80" und "AtlAxWinLic80" sowie einige benutzerdefinierte Fenstermeldungen registriert werden.

ATLAPI_(BOOL) AtlAxWinInit();

Rückgabewert

Nonzero, wenn die Initialisierung des Steuerelementhostingcodes erfolgreich war; andernfalls FALSE.

Hinweise

Diese Funktion muss aufgerufen werden, bevor die ATL-Steuerelementhosting-API verwendet wird. Nach einem Aufruf dieser Funktion kann die Fensterklasse "AtlAxWin" in Aufrufen von CreateWindow oder CreateWindowEx verwendet werden, wie im Windows SDK beschrieben.

AtlAxWinTerm

Diese Funktion hebt den ATL-Steuerelementhostingcode auf, indem die Registrierung der Fensterklassen "AtlAxWin80" und "AtlAxWinLic80" aufgehoben wird.

inline BOOL AtlAxWinTerm();

Rückgabewert

Gibt immer TRUE zurück.

Hinweise

Diese Funktion ruft einfach UnregisterClass auf, wie im Windows SDK beschrieben.

Rufen Sie diese Funktion auf, um zu bereinigen, nachdem alle vorhandenen Hostfenster zerstört wurden, wenn Sie AtlAxWinInit aufgerufen haben und Sie keine Hostfenster mehr erstellen müssen. Wenn Sie diese Funktion nicht aufrufen, wird die Registrierung der Fensterklasse automatisch aufgehoben, wenn der Prozess beendet wird.

AtlGetObjectSourceInterface

Mit dieser Funktion werden Informationen über die Standardquellschnittstelle eines Objekts abgerufen.

ATLAPI AtlGetObjectSourceInterface(
    IUnknown* punkObj,
    GUID* plibid,
    IID* piid,
    unsigned short* pdwMajor,
    unsigned short* pdwMinor);

Parameter

punkObj
[in] Ein Zeiger auf das Objekt, für das Informationen zurückgegeben werden sollen.

plibid
[out] Ein Zeiger auf die LIBID der Typbibliothek, die die Definition der Quellschnittstelle enthält.

piid
[out] Ein Zeiger auf die Schnittstellen-ID der Standardquellschnittstelle des Objekts.

pdwMajor
[out] Ein Zeiger auf die Hauptversionsnummer der Typbibliothek, die die Definition der Quellschnittstelle enthält.

pdwMinor
[out] Ein Zeiger auf die Nebenversionsnummer der Typbibliothek, die die Definition der Quellschnittstelle enthält.

Rückgabewert

Ein HRESULT-Standardwert.

Hinweise

AtlGetObjectSourceInterface kann Ihnen die Schnittstellen-ID der Standardquellschnittstelle zusammen mit den LIBID- und Haupt- und Nebenversionsnummern der Typbibliothek bereitstellen, die diese Schnittstelle beschreibt.

Hinweis

Damit diese Funktion die angeforderten Informationen erfolgreich abrufen kann, muss das durch PunkObj dargestellte Objekt (IDispatchund Rückgabetypinformationen über IDispatch::GetTypeInfo) implementieren und außerdem entweder oder IPersistimplementierenIProvideClassInfo2. Die Typinformationen für die Quellschnittstelle müssen sich in derselben Typbibliothek befinden wie die Typinformationen für IDispatch.

Beispiel

Das folgende Beispiel zeigt, wie Sie eine Ereignissenkenklasse definieren können, CEasySinkdie die Anzahl der Vorlagenargumente reduziert, an IDispEventImpl die Sie an die wesentlichen Elemente übergeben können. EasyAdvise und EasyUnadvise zum AtlGetObjectSourceInterface Initialisieren der IDispEventImpl-Elemente vor dem Aufrufen von DispEventAdvise oder 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);
   }
};

Siehe auch

Funktionen
Makros zusammengesetzter Steuerelemente