IHomeGroup::ShowSharingWizard 方法 (shobjidl_core.h)

显示允许用户创建主组的向导,然后检索用户通过向导选择的共享选项。

语法

HRESULT ShowSharingWizard(
  [in]  HWND                    owner,
  [out] HOMEGROUPSHARINGCHOICES *sharingchoices
);

参数

[in] owner

类型:HWND

向导的所有者窗口的句柄,用于通知。 此值可以为 NULL

[out] sharingchoices

类型: HOMEGROUPSHARINGCHOICES*

指向一个值的指针,此方法成功返回时,将接收一个或多个以下值,这些值指示通过向导选择的库和设备要与主组共享。

HGSC_NONE (0x00000000)

0x00000000。 未选择“主页组”选项

HGSC_MUSICLIBRARY (0x00000001)

0x00000001。 音乐库已选择与家庭组共享。

HGSC_PICTURESLIBRARY (0x00000002)

0x00000002。 已选择与家庭组共享图片库。

HGSC_VIDEOSLIBRARY (0x00000004)

0x00000004。 已选择视频库与主组共享。

HGSC_DOCUMENTSLIBRARY (0x00000008)

0x00000008。 已选择与主组共享文档库。

HGSC_PRINTERS (0x00000010)

0x00000010。 已安装的打印机设备已选择与家庭组共享。

返回值

类型: HRESULT

如果成功,则返回S_OK,否则返回标准错误值,包括:

返回代码 说明
ERROR_CANCELLED
用户取消了向导。 使用 HRESULT_FROM_WIN32 提取此错误代码。
E_UNEXPECTED
计算机未加入家庭组,或者网络或家庭组未处于允许共享 ((例如未连接到网络或正在进行另一个共享操作) )的状态。
E_NOINTERFACE
方法是从多线程单元 (MTA) 线程启动的。
E_INVALIDARG
sharingchoices 参数为 NULL

注解

必须从单线程单元 (STA) 线程调用此方法。

示例

以下代码演示 了 ShowSharingWizard 的示例用法。

HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (SUCCEEDED(hr))
{
    IHomeGroup *phg;
    
    hr = CoCreateInstance(CLSID_HomeGroup, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&phg));
    if (SUCCEEDED(hr))
    {
        HOMEGROUPSHARINGCHOICES sharingchoices;

        hr = phg->ShowSharingWizard(NULL, &sharingchoices);
        if (SUCCEEDED(hr))
        {
            \\ The user selected to share.
            
            if (sharingchoices & HGSC_MUSICLIBRARY)
            {
                \\ Music
            }
            if (sharingchoices & HGSC_PICTURESLIBRARY)
            {
                \\ Pictures
            }
            if (sharingchoices & HGSC_VIDEOSLIBRARY)
            {
                \\ Videos
            }
            if (sharingchoices & HGSC_DOCUMENTSLIBRARY)
            {
                \\ Documents
            }
            if (sharingchoices & HGSC_PRINTERS)
            {
                \\ Printers
            }
        }
        phg->Release();
    }
    CoUninitialize();
}

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)