Shell Link 通用对话框?

Shell Link common dialog?

在调用 CreateFile 之前,您需要一个文件的名称。您当然可以创建自己的对话框:

但幸运的是 Windows 已经完成了所有 UI 繁重的工作,并为您提供了 IFileOpenDialog common dialog:

是否存在创建 link 的相同方法?

Windows Explorer 有一个对话框,可指导用户创建文件、文件夹、项目、url 等的快捷方式:

此对话框是 "common" 对话框 - 可供应用程序使用吗?


编辑:另外提醒:我不想调用 向导 - 因为向导 在硬盘上创建 link。我不想把它保存在硬盘上。我需要 get 结果的能力:

用户输入的。

我需要一个 "location picker" 用户界面。

Does the same exist for creating a link?

Windows Explorer has a dialog that guides the user through creating a shortcut to a file, folder, item, url, etc:

是的,就是 API NewLinkHereW

一个测试(VS 2015,Windows10)=>

(link 在 e:\test 中为样本创建)

        typedef void(WINAPI *NLH)(HWND hwnd, HINSTANCE hAppInstance, LPTSTR lpszCmdLine, int nCmdShow);
        NLH NewLinkHereW;
        HMODULE hDll = LoadLibrary(L"appwiz.cpl");
        NewLinkHereW = (NLH)GetProcAddress(hDll, "NewLinkHereW");
        WCHAR wsFolder[MAX_PATH] = L"e:\test";
        lstrcat(wsFolder, L"\newlink.lnk");
        if (NewLinkHereW)
        {
            HANDLE hLink = CreateFile(wsFolder, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
            if (hLink != INVALID_HANDLE_VALUE)
            {
                CloseHandle(hLink);
                NewLinkHereW(GetDesktopWindow(), NULL, wsFolder, SW_SHOWNORMAL);
            }               
        }