Поделиться через


Функция ADsPropCreateNotifyObj (adsprop.h)

Функция ADsPropCreateNotifyObj используется для создания или получения объекта уведомления для использования расширением страницы свойств доменные службы Active Directory.

Синтаксис

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

Параметры

[in] pAppThdDataObj

Указатель на объект IDataObject , представляющий объект каталога, к которому применяется страница свойств. Это объект IDataObject , переданный на страницу свойств методУ IShellExtInit::Initialize .

[in] pwzADsObjName

Имя объекта доменные службы Active Directory, полученное путем вызова метода IDataObject::GetData для формата буфера обмена CFSTR_DSOBJECTNAMES в IDataObject, представленном pAppThdDataObj.

[out] phNotifyObj

Указатель на значение HWND , которое получает дескриптор объекта уведомления.

Возвращаемое значение

Возвращает S_OK в случае успешного выполнения, или значение ошибки, определенное OLE, в противном случае.

Комментарии

Функция ADsPropCreateNotifyObj используется в реализации расширения страницы свойств доменные службы Active Directory. Сначала расширение должно запросить данные CFSTR_DSOBJECTNAMES из интерфейса IDataObject , передаваемого в IShellExtInit::Initialize путем вызова IDataObject::GetData. Он предоставляет объект данных и имя объекта, необходимые для вызова 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
Header adsprop.h
Библиотека Dsprop.lib
DLL Dsprop.dll

См. также раздел

CFSTR_DSOBJECTNAMES

Idataobject

IDataObject::GetData

IShellPropSheetExt::AddPages

WM_ADSPROP_NOTIFY_EXIT