Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ICommonQuery::OpenQueryWindow。搜索结果中没有管理上下文菜单_C++_Active Directory_Dsquery - Fatal编程技术网

C++ ICommonQuery::OpenQueryWindow。搜索结果中没有管理上下文菜单

C++ ICommonQuery::OpenQueryWindow。搜索结果中没有管理上下文菜单,c++,active-directory,dsquery,C++,Active Directory,Dsquery,我尝试使用管理和其他扩展功能从应用程序中调用Active directory搜索窗口。为此,我使用了以下标志: DSQPF_ENABLEADMINFEATURES | DSQPF_ENABLEADVANCEDFEATURES; 如MSDN所述: DSQPF_ENABLEADMINFEATURES-使用目录服务管理工具支持的功能,例如上下文菜单的管理显示说明符和属性页 DSQPF_ENABLEADVANCEDFEATURES-指定传递到上下文菜单和属性页的IDataObject实例中的高级功能

我尝试使用管理和其他扩展功能从应用程序中调用Active directory搜索窗口。为此,我使用了以下标志:

DSQPF_ENABLEADMINFEATURES | DSQPF_ENABLEADVANCEDFEATURES;
如MSDN所述:

DSQPF_ENABLEADMINFEATURES-使用目录服务管理工具支持的功能,例如上下文菜单的管理显示说明符属性页

DSQPF_ENABLEADVANCEDFEATURES-指定传递到上下文菜单和属性页的IDataObject实例中的高级功能

这两个标志完全适用于选项卡。作为域管理员,我可以在用户属性中看到很多选项卡。但这些参数对上下文菜单没有影响。例如:

  • 从服务器管理器调用的搜索对话框。您可以看到管理上下文菜单
  • 这是从我的应用程序调用的对话框。有一个很短的上下文菜单,但如果我单击属性,我将能够以管理权限更改与此帐户相关的所有内容
  • 应用程序从域管理员处运行。UAC已禁用。在Windows Server 2008 R2上测试

    有没有办法显示此关联菜单?

    在这里,您可以看到我用于调用AD搜索对话框的示例代码

    #include "stdafx.h"
    #include "activeds.h"
    #include "cmnquery.h"
    #include "dsquery.h"
    #include "shlobj.h"
    #include "dsclient.h"
    #include "windows.h"
    
    #pragma comment(lib, "uuid.lib")
    #pragma comment(lib, "activeds.lib")
    
    HRESULT FindADUsers(HWND hwndParent)
    {
        HRESULT hr;
        ICommonQuery *pcq;
        hr = CoCreateInstance(CLSID_CommonQuery,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_ICommonQuery,
            (LPVOID*)&pcq);
        if (SUCCEEDED(hr))
        {
            OPENQUERYWINDOW openQueryWindow;
            DSQUERYINITPARAMS dqip;
            IDataObject *pdo;
    
            ZeroMemory(&openQueryWindow, sizeof(openQueryWindow));
            openQueryWindow.cbStruct = sizeof(openQueryWindow);
            openQueryWindow.dwFlags = OQWF_DEFAULTFORM | OQWF_SINGLESELECT | OQWF_SHOWOPTIONAL;
            openQueryWindow.pHandlerParameters = &dqip;
            openQueryWindow.clsidHandler = CLSID_DsQuery;
            openQueryWindow.clsidDefaultForm = CLSID_DsFindPeople; 
    
            ZeroMemory(&dqip, sizeof(dqip));
            dqip.cbStruct = sizeof(dqip);
            dqip.dwFlags = DSQPF_NOSAVE | DSQPF_SHOWHIDDENOBJECTS | DSQPF_ENABLEADMINFEATURES | DSQPF_ENABLEADVANCEDFEATURES;
    
            hr = pcq->OpenQueryWindow(hwndParent, &openQueryWindow, &pdo);
            if (S_OK == hr)
            {
                pdo->Release();
            }
    
            pcq->Release();
        }
    
        return hr;
    }
    
    //  Entry point for application
    int main(int argc, _TCHAR* argv[])
    {
        HRESULT hr;
        CoInitialize(NULL);
        hr = FindADUsers(NULL);
        CoUninitialize();
        return 0;
    }