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 |