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

pAppThdDataObj 表示的 IDataObject 上CFSTR_DSOBJECTNAMES剪贴板格式调用 IDataObject::GetData 方法获取的Active Directory 域服务对象名称。

[out] phNotifyObj

指向接收通知对象的句柄的 HWND 值的指针。

返回值

如果成功,则返回 S_OK ,否则返回 OLE 定义的错误值。

注解

ADsPropCreateNotifyObj 函数用于实现 Active Directory 域服务 属性表扩展。 扩展必须首先通过调用 IDataObject::GetData 从传递给 IShellExtInit::InitializeIDataObject 接口请求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
Library Dsprop.lib
DLL Dsprop.dll

另请参阅

CFSTR_DSOBJECTNAMES

IDataObject

IDataObject::GetData

IShellPropSheetExt::AddPages

WM_ADSPROP_NOTIFY_EXIT