ADsPropCreateNotifyObj 函式 (adsprop.h)
ADsPropCreateNotifyObj 函式可用來建立或取得通知物件,以供 Active Directory 網域服務 屬性表延伸模組使用。
語法
HRESULT ADsPropCreateNotifyObj(
[in] LPDATAOBJECT pAppThdDataObj,
[in] PWSTR pwzADsObjName,
[out] HWND *phNotifyObj
);
參數
[in] pAppThdDataObj
IDataObject 物件的指標,代表屬性頁所套用的目錄物件。 這是傳遞至屬性頁 IShellExtInit::Initialize 方法的 IDataObject。
[in] pwzADsObjName
在 pAppThdDataObject 所代表的 IDataObject 上,針對CFSTR_DSOBJECTNAMES剪貼簿格式呼叫 IDataObject::GetData 方法取得的 Active Directory 網域服務 物件名稱。
[out] phNotifyObj
接收通知物件的句柄之 HWND 值的指標。
傳回值
如果成功,則傳回 S_OK ,否則傳回 OLE 定義的錯誤值。
備註
ADsPropCreateNotifyObj 函式用於 Active Directory 網域服務 屬性表延伸的實作中。 延伸模組必須先呼叫 IDataObject::GetData,從傳遞至 IShellExtInit::Initialize 的 IDataObject 介面要求CFSTR_DSOBJECTNAMES數據。 這會提供呼叫 ADsPropCreateNotifyObj 所需的數據物件和物件名稱。
當不再需要通知物件時, 會將WM_ADSPROP_NOTIFY_EXIT 訊息傳送至通知物件。 這會導致通知物件自行終結。 傳送 WM_ADSPROP_NOTIFY_EXIT 訊息時,通知物件句柄應該視為無效。
範例
下列 C++ 範例示範如何使用 ADsPropCreateNotifyObj 函式。
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;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | adsprop.h |
程式庫 | Dsprop.lib |
Dll | Dsprop.dll |