Condividi tramite


Funzione ADsPropCreateNotifyObj (adsprop.h)

La funzione ADsPropCreateNotifyObj viene usata per creare o ottenere un oggetto di notifica da usare da un'estensione del foglio di proprietà Active Directory Domain Services.

Sintassi

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

Parametri

[in] pAppThdDataObj

Puntatore all'oggetto IDataObject che rappresenta l'oggetto directory a cui si applica la pagina delle proprietà. Si tratta del metodo IDataObject passato alla pagina delle proprietà IShellExtInit::Initialize .

[in] pwzADsObjName

Il nome dell'oggetto Active Directory Domain Services ottenuto chiamando il metodoIDataObject::GetData per il formato degli Appunti CFSTR_DSOBJECTNAMES nel formato IDataObject rappresentato da pAppThdDataObj.

[out] phNotifyObj

Puntatore a un valore HWND che riceve l'handle dell'oggetto di notifica.

Valore restituito

Restituisce S_OK se ha esito positivo o un valore di errore definito da OLE in caso contrario.

Commenti

La funzione ADsPropCreateNotifyObj viene usata nell'implementazione di un'estensione del foglio delle proprietà Active Directory Domain Services. L'estensione deve prima richiedere i dati CFSTR_DSOBJECTNAMES dall'interfaccia IDataObject passata a IShellExtInit::Initialize chiamando IDataObject::GetData. Fornisce l'oggetto dati e il nome dell'oggetto necessari per chiamare ADsPropCreateNotifyObj.

Quando l'oggetto di notifica non è più necessario, viene inviato un messaggio di WM_ADSPROP_NOTIFY_EXIT all'oggetto di notifica. In questo modo l'oggetto di notifica viene eliminato. Quando viene inviato il messaggio WM_ADSPROP_NOTIFY_EXIT , l'handle dell'oggetto di notifica deve essere considerato non valido.

Esempio

Nell'esempio C++ seguente viene illustrato come usare la funzione 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;
}

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione adsprop.h
Libreria Dsprop.lib
DLL Dsprop.dll

Vedi anche

CFSTR_DSOBJECTNAMES

Idataobject

IDataObject::GetData

IShellPropSheetExt::AddPages

WM_ADSPROP_NOTIFY_EXIT