Bagikan melalui


Fungsi ADsPropCreateNotifyObj (adsprop.h)

Fungsi ADsPropCreateNotifyObj digunakan untuk membuat, atau mendapatkan, objek pemberitahuan untuk digunakan oleh ekstensi lembar properti Active Directory Domain Services.

Sintaks

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

Parameter

[in] pAppThdDataObj

Penunjuk ke objek IDataObject yang mewakili objek direktori tempat halaman properti diterapkan. Ini adalah metode IDataObject yang diteruskan ke halaman properti IShellExtInit::Initialize .

[in] pwzADsObjName

Nama objek Active Directory Domain Services diperoleh dengan memanggil metode IDataObject::GetData untuk format clipboard CFSTR_DSOBJECTNAMES pada IDataObject yang diwakili oleh pAppThdDataObj.

[out] phNotifyObj

Penunjuk ke nilai HWND yang menerima handel objek pemberitahuan.

Nilai kembali

Mengembalikan S_OK jika berhasil, atau nilai kesalahan yang ditentukan OLE sebaliknya.

Keterangan

Fungsi ADsPropCreateNotifyObj digunakan dalam implementasi ekstensi lembar properti Active Directory Domain Services. Ekstensi harus terlebih dahulu meminta data CFSTR_DSOBJECTNAMES dari antarmuka IDataObject yang diteruskan ke IShellExtInit::Initialize dengan memanggil IDataObject::GetData. Ini menyediakan objek data dan nama objek yang diperlukan untuk memanggil ADsPropCreateNotifyObj.

Ketika objek pemberitahuan tidak lagi diperlukan, pesan WM_ADSPROP_NOTIFY_EXIT dikirim ke objek pemberitahuan. Hal ini menyebabkan objek pemberitahuan hancur dengan sendirinya. Ketika pesan WM_ADSPROP_NOTIFY_EXIT dikirim, handel objek pemberitahuan harus dianggap tidak valid.

Contoh

Contoh C++ berikut menunjukkan cara menggunakan fungsi 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;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Target Platform Windows
Header adsprop.h
Pustaka Dsprop.lib
DLL Dsprop.dll

Lihat juga

CFSTR_DSOBJECTNAMES

IDataObject

IDataObject::GetData

IShellPropSheetExt::AddPages

WM_ADSPROP_NOTIFY_EXIT