Compartir a través de


Función ADsPropCreateNotifyObj (adsprop.h)

La función ADsPropCreateNotifyObj se usa para crear, u obtener, un objeto de notificación para que lo use una extensión de hoja de propiedades de Servicios de dominio de Active Directory.

Sintaxis

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

Parámetros

[in] pAppThdDataObj

Puntero al objeto IDataObject que representa el objeto de directorio al que se aplica la página de propiedades. Este es el IDataObject pasado al método IShellExtInit::Initialize de la página de propiedades.

[in] pwzADsObjName

El nombre del objeto Servicios de dominio de Active Directory obtenido llamando al método IDataObject::GetData para el formato del Portapapeles CFSTR_DSOBJECTNAMES en el IDataObject representado por pAppThdDataObj.

[out] phNotifyObj

Puntero a un valor HWND que recibe el identificador del objeto de notificación.

Valor devuelto

Devuelve S_OK si se ejecuta correctamente o un valor de error definido por OLE de lo contrario.

Comentarios

La función ADsPropCreateNotifyObj se usa en la implementación de una extensión de hoja de propiedades de Servicios de dominio de Active Directory. La extensión debe solicitar primero los datos CFSTR_DSOBJECTNAMES de la interfaz IDataObject que se pasa a IShellExtInit::Initialize llamando a IDataObject::GetData. Esto proporciona el objeto de datos y el nombre de objeto necesarios para llamar a ADsPropCreateNotifyObj.

Cuando el objeto de notificación ya no es necesario, se envía un mensaje WM_ADSPROP_NOTIFY_EXIT al objeto de notificación. Esto hace que el objeto de notificación se destruya. Cuando se envía el mensaje WM_ADSPROP_NOTIFY_EXIT , el identificador del objeto de notificación debe considerarse no válido.

Ejemplos

En el siguiente ejemplo de C++ se muestra cómo usar la función 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;
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado adsprop.h
Library Dsprop.lib
Archivo DLL Dsprop.dll

Consulte también

CFSTR_DSOBJECTNAMES

IDataObject

IDataObject::GetData

IShellPropSheetExt::AddPages

WM_ADSPROP_NOTIFY_EXIT