Freigeben über


ADsPropCreateNotifyObj-Funktion (adsprop.h)

Die Funktion ADsPropCreateNotifyObj wird verwendet, um ein Benachrichtigungsobjekt für die Verwendung durch eine Active Directory Domain Services Eigenschaftenblatterweiterung zu erstellen oder abzurufen.

Syntax

HRESULT ADsPropCreateNotifyObj(
  [in]  LPDATAOBJECT pAppThdDataObj,
  [in]  PWSTR        pwzADsObjName,
  [out] HWND         *phNotifyObj
);

Parameter

[in] pAppThdDataObj

Ein Zeiger auf das IDataObject-Objekt , das das Verzeichnisobjekt darstellt, auf das die Eigenschaftenseite angewendet wird. Dies ist das IDataObject , das an die Eigenschaftsseite IShellExtInit::Initialize-Methode übergeben wird.

[in] pwzADsObjName

Der Active Directory Domain Services Objektnamen, der durch Aufrufen der IDataObject::GetData-Methode für das CFSTR_DSOBJECTNAMES Zwischenablageformat für das durch pAppThdDataObj dargestellte IDataObject abgerufen wird.

[out] phNotifyObj

Zeiger auf einen HWND-Wert , der das Handle des Benachrichtigungsobjekts empfängt.

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen von OLE definierten Fehlerwert zurück.

Hinweise

Die Funktion ADsPropCreateNotifyObj wird bei der Implementierung einer Active Directory Domain Services Eigenschaftenblatterweiterung verwendet. Die Erweiterung muss zuerst die CFSTR_DSOBJECTNAMES Daten von der IDataObject-Schnittstelle anfordern, die an IShellExtInit::Initialize übergeben werden, indem IDataObject::GetData aufgerufen wird. Dadurch werden das Datenobjekt und der Objektname bereitgestellt, die zum Aufrufen von ADsPropCreateNotifyObj erforderlich sind.

Wenn das Benachrichtigungsobjekt nicht mehr erforderlich ist, wird eine WM_ADSPROP_NOTIFY_EXIT Nachricht an das Benachrichtigungsobjekt gesendet. Dadurch wird das Benachrichtigungsobjekt selbst zerstört. Wenn die WM_ADSPROP_NOTIFY_EXIT Nachricht gesendet wird, sollte das Benachrichtigungsobjekthandle als ungültig betrachtet werden.

Beispiele

Im folgenden C++-Beispiel wird die Verwendung der Funktion ADsPropCreateNotifyObj veranschaulicht.

HWND CreateADsNotificationObject(IDataObject *pDataObject)
{
    STGMEDIUM   stm;
    FORMATETC   fe;
    HRESULT     hr;
    HWND        hwndNotifyObject = NULL;

    if(NULL == pDataObject)
    {
        return NULL;
    }

    fe.cfFormat = RegisterClipboardFormat(CFSTR_DSOBJECTNAMES);
    if(0 == fe.cfFormat)
    {
        return NULL;
    }
    fe.ptd = NULL;
    fe.dwAspect = DVASPECT_CONTENT;
    fe.lindex = -1;
    fe.tymed = TYMED_HGLOBAL;
    hr = pDataObject->GetData(&fe, &stm);
    if(SUCCEEDED(hr))
    {
        LPDSOBJECTNAMES pdson = 
            (LPDSOBJECTNAMES)GlobalLock(stm.hGlobal);

        if(pdson)
        {
            LPWSTR  pwszName = (LPWSTR)((LPBYTE)pdson + 
                pdson->aObjects[0].offsetName);
            
            hr = ADsPropCreateNotifyObj(pDataObject, 
                pwszName, 
                &hwndNotifyObject);
    
            GlobalUnlock(stm.hGlobal);    
        }
        
        ReleaseStgMedium(&stm);
    }

    return hwndNotifyObject;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile adsprop.h
Bibliothek Dsprop.lib
DLL Dsprop.dll

Weitere Informationen

CFSTR_DSOBJECTNAMES

Idataobject

IDataObject::GetData

IShellPropSheetExt::AddPages

WM_ADSPROP_NOTIFY_EXIT