Compartilhar via


Função ADsPropCreateNotifyObj (adsprop.h)

A função ADsPropCreateNotifyObj é usada para criar ou obter um objeto de notificação para uso por uma extensão de folha de propriedades Active Directory Domain Services.

Sintaxe

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

Parâmetros

[in] pAppThdDataObj

Um ponteiro para o objeto IDataObject que representa o objeto de diretório ao qual a página de propriedades se aplica. Este é o IDataObject passado para o método IShellExtInit::Initialize da página de propriedades.

[in] pwzADsObjName

O Active Directory Domain Services nome do objeto obtido chamando o método IDataObject::GetData para o formato da área de transferência CFSTR_DSOBJECTNAMES no IDataObject representado por pAppThdDataObj.

[out] phNotifyObj

Ponteiro para um valor HWND que recebe o identificador do objeto de notificação.

Retornar valor

Retorna S_OK se tiver êxito ou um valor de erro definido por OLE caso contrário.

Comentários

A função ADsPropCreateNotifyObj é usada na implementação de uma extensão de folha de propriedades Active Directory Domain Services. A extensão deve primeiro solicitar os dados CFSTR_DSOBJECTNAMES da interface IDataObject passada para IShellExtInit::Initialize chamando IDataObject::GetData. Isso fornece o objeto de dados e o nome do objeto necessários para chamar ADsPropCreateNotifyObj.

Quando o objeto de notificação não é mais necessário, uma mensagem WM_ADSPROP_NOTIFY_EXIT é enviada ao objeto de notificação. Isso faz com que o objeto de notificação se destrua. Quando a mensagem WM_ADSPROP_NOTIFY_EXIT é enviada, o identificador do objeto de notificação deve ser considerado inválido.

Exemplos

O exemplo C++ a seguir mostra como usar a função 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 Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho adsprop.h
Biblioteca Dsprop.lib
DLL Dsprop.dll

Confira também

CFSTR_DSOBJECTNAMES

Idataobject

IDataObject::GetData

IShellPropSheetExt::AddPages

WM_ADSPROP_NOTIFY_EXIT