Win32 API 日本語リファレンス
ホームMedia.LibrarySharingServices › IWindowsMediaLibrarySharingServices

IWindowsMediaLibrarySharingServices

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID01f5f85e-0a81-40da-a7c8-21ef3af8440c継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

IWindowsMediaLibrarySharingServices インターフェイスは、ローカルコンピューター上のユーザー、ホームネットワーク上のユーザー、およびインターネット上のユーザーの間でのメディアライブラリの共有を構成するメソッドを定義します。

解説(Remarks)

IWindowsMediaLibrarySharingServices インターフェイスを取得するには、CoCreateInstance を呼び出して WindowsMediaLibrarySharingServices オブジェクトを作成します。

メソッド 19

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT showShareMediaCPL(LPWSTR device)

showShareMediaCPL メソッドは、コントロールパネルのメディア共有ページを表示し、指定されたデバイスを強調表示します。

deviceLPWSTRinBSTR

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

deviceNULL の場合、または device が空の BSTR の場合、フォーカスは既定のダイアログボックス要素に設定されます。また、device が空でない BSTR であっても、既知のデバイスの MAC アドレスでない場合は、フォーカスは既定のダイアログボックス要素に設定されます。

vtbl 8 HRESULT get_userHomeMediaSharingState(VARIANT_BOOL* sharingEnabled)

get_userHomeMediaSharingState メソッドは、現在のユーザーのメディアライブラリがホームネットワーク上で共有されているかどうかを示す値を取得します。

sharingEnabledVARIANT_BOOL*outメディアライブラリが共有されている場合は VARIANT_TRUE、共有されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

コンピューターに対してホームメディア共有が許可されていない場合、現在のユーザーがホームメディア共有を有効にしているかどうかに関係なく、このメソッドは VARIANT_FALSE を取得します。

コンピューターに対してホームメディア共有が許可されており、かつ現在のユーザーがホームメディア共有を有効にしている場合、このメソッドは VARIANT_TRUE を取得します。

vtbl 9 HRESULT put_userHomeMediaSharingState(VARIANT_BOOL sharingEnabled)

put_userHomeMediaSharingState メソッドは、現在のユーザーのメディアライブラリのホームネットワーク上での共有を有効または無効にします。

sharingEnabledVARIANT_BOOLin現在のユーザーについて共有を有効にする (VARIANT_TRUE) か無効にする (VARIANT_FALSE) かを指定する VARIANT_BOOL

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

コンピューターに対してホームメディア共有が許可されていない場合、現在のユーザーについてホームメディア共有が有効かどうかに関係なく、他のユーザーは現在のユーザーのメディアライブラリにアクセスできません。

コンピューターに対してホームメディア共有が許可されており、かつ現在のユーザーについてホームメディア共有が有効になっている場合、ホームネットワーク上の他のユーザーは現在のユーザーのメディアライブラリにアクセスできます。

警告 現在のユーザーについてホームメディア共有が有効になっている場合、コンピューターはユーザーのメディアライブラリ内の各ファイルのアクセス制御リスト (ACL) を更新し、NT SERVICE\WMPNetworkSvc アカウントに読み取りアクセスを許可します。この動作は将来のバージョンの Windows で変更される可能性があります。
vtbl 10 HRESULT get_userHomeMediaSharingLibraryName(LPWSTR* libraryName)

get_userHomeMediaSharingLibraryName メソッドは、現在のユーザーの共有メディアライブラリの名前を取得します。

libraryNameLPWSTR*outライブラリ名を受け取る BSTR へのポインター。

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 11 HRESULT put_userHomeMediaSharingLibraryName(LPWSTR libraryName)

put_userHomeMediaSharingLibraryName メソッドは、現在のユーザーの共有メディアライブラリの名前を設定します。

libraryNameLPWSTRinライブラリ名を指定する BSTR

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 12 HRESULT get_computerHomeMediaSharingAllowedState(VARIANT_BOOL* sharingAllowed)

get_computerHomeMediaSharingAllowedState メソッドは、コンピューター上のメディアライブラリをホームネットワーク上で共有することが許可されているかどうかを示す値を取得します。

sharingAllowedVARIANT_BOOL*outメディアライブラリの共有が許可されている場合は VARIANT_TRUE、許可されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

コンピューターに対してホームメディア共有が許可されていない場合、個々のユーザーがホームメディア共有を有効にしているかどうかに関係なく、どのユーザーのメディアライブラリもホームネットワーク上で共有されません。

コンピューターに対してホームメディア共有が許可されており、特定のユーザーがメディア共有を有効にしている場合、そのユーザーのメディアライブラリはホームネットワーク上で共有されます。

警告 Windows 7 では、サービスアカウントから get_computerHomeMediaSharingAllowedState を呼び出すと、正しくない結果が返される場合があります。
メモ sharingAllowed パラメーターに VARIANT_TRUE を設定して IWindowsMediaLibrarySharingServices::put_computerHomeMediaSharingAllowedState メソッドを呼び出すたびに、コンピューターのパブリックのミュージック、パブリックのピクチャ、パブリックのビデオの各フォルダー内のすべてのファイルについて、アクセス制御リスト (ACL) と最終変更日時が更新されます。
vtbl 13 HRESULT put_computerHomeMediaSharingAllowedState(VARIANT_BOOL sharingAllowed)

put_computerHomeMediaSharingAllowedState メソッドは、コンピューター上のメディアライブラリをホームネットワーク上で共有することを許可するかどうかを指定します。

sharingAllowedVARIANT_BOOLinメディアライブラリの共有が許可される場合は VARIANT_TRUE、許可されない場合は VARIANT_FALSE を指定する VARIANT_BOOL

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

このメソッドは、昇格された特権で実行されているコードから呼び出す必要があります。

コンピューターに対してホームメディア共有が許可されていない場合、個々のユーザーがホームメディア共有を有効にしているかどうかに関係なく、どのユーザーのメディアライブラリもホームネットワーク上で共有されません。

コンピューターに対してホームメディア共有が許可されており、特定のユーザーがメディア共有を有効にしている場合、そのユーザーのメディアライブラリはホームネットワーク上で共有されます。

警告 sharingAllowed パラメーターに VARIANT_TRUE を設定して put_computerHomeMediaSharingAllowedState を呼び出すたびに、コンピューターのパブリックのミュージック、パブリックのピクチャ、パブリックのビデオの各フォルダー内の各ファイルについて、アクセス制御リスト (ACL) と最終変更日時が更新されます。この動作は将来のバージョンの Windows で変更される可能性があります。
vtbl 14 HRESULT get_userInternetMediaSharingState(VARIANT_BOOL* sharingEnabled)

get_userInternetMediaSharingState メソッドは、現在のユーザーのメディアライブラリがインターネット上で共有されているかどうかを示す値を取得します。

sharingEnabledVARIANT_BOOL*outメディアライブラリが共有されている場合は VARIANT_TRUE、共有されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

コンピューターに対してインターネットメディア共有が許可されていない場合、現在のユーザーがインターネットメディア共有を有効にしているかどうかに関係なく、このメソッドは VARIANT_FALSE を取得します。

コンピューターに対してインターネットメディア共有が許可されており、かつ現在のユーザーがインターネットメディア共有を有効にしている場合、このメソッドは VARIANT_TRUE を取得します。

vtbl 15 HRESULT put_userInternetMediaSharingState(VARIANT_BOOL sharingEnabled)

put_userInternetMediaSharingState メソッドは、現在のユーザーのメディアライブラリのインターネット上での共有を有効または無効にします。

sharingEnabledVARIANT_BOOLin現在のユーザーについてインターネット上での共有を有効にする (VARIANT_TRUE) か無効にする (VARIANT_FALSE) かを指定する VARIANT_BOOL

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

コンピューターに対してインターネットメディア共有が許可されていない場合、現在のユーザーについてインターネットメディア共有が有効かどうかに関係なく、インターネット上のユーザーは現在のユーザーのメディアライブラリにアクセスできません。

コンピューターに対してインターネットメディア共有が許可されており、かつ現在のユーザーについてインターネットメディア共有が有効になっている場合、インターネット上の他のユーザーは現在のユーザーのメディアライブラリにアクセスできます。

vtbl 16 HRESULT get_computerInternetMediaSharingAllowedState(VARIANT_BOOL* sharingAllowed)

get_computerInternetMediaSharingAllowedState メソッドは、コンピューター上のメディアライブラリをインターネット上で共有することが許可されているかどうかを示す値を取得します。

sharingAllowedVARIANT_BOOL*outメディアライブラリの共有が許可されている場合は VARIANT_TRUE、許可されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

コンピューターに対してホームメディア共有が許可されていない場合、そのコンピューターではインターネットメディア共有も許可されません。

コンピューターに対してインターネットメディア共有が許可されていない場合、個々のユーザーがインターネットメディア共有を有効にしているかどうかに関係なく、どのユーザーのメディアライブラリもインターネット上で共有されません。

コンピューターに対してインターネットメディア共有が許可されており、特定のユーザーがインターネットメディア共有を有効にしている場合、そのユーザーのメディアライブラリはインターネット上で共有されます。

vtbl 17 HRESULT put_computerInternetMediaSharingAllowedState(VARIANT_BOOL sharingAllowed)

put_computerInternetMediaSharingAllowedState メソッドは、コンピューター上のメディアライブラリをインターネット上で共有することを許可するかどうかを指定します。

sharingAllowedVARIANT_BOOLin共有を許可する (VARIANT_TRUE) か許可しない (VARIANT_FALSE) かを指定する VARIANT_BOOL

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

コンピューターに対してホームメディア共有が許可されていない場合、そのコンピューターではインターネットメディア共有は許可されません。

コンピューターに対してインターネットメディア共有が許可されていない場合、個々のユーザーがインターネットメディア共有を有効にしているかどうかに関係なく、どのユーザーのメディアライブラリもインターネット上で共有されません。

コンピューターに対してインターネットメディア共有が許可されており、特定のユーザーがインターネットメディア共有を有効にしている場合、そのユーザーのメディアライブラリはインターネット上で共有されます。

vtbl 18 HRESULT get_internetMediaSharingSecurityGroup(LPWSTR* securityGroup)

get_internetMediaSharingSecurityGroup メソッドは、インターネット経由の受信接続の認証に使用されるセキュリティグループの名前を取得します。

securityGroupLPWSTR*outセキュリティグループの名前を受け取る BSTR へのポインター。

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

インターネットメディア共有のセキュリティグループは Windows Home Server にのみ適用されます。他のバージョンの Windows 上で実行されているアプリケーションも put_internetMediaSharingSecurityGroup および get_internetMediaSharingSecurityGroup を呼び出すことはできますが、呼び出しは効果を持ちません。

vtbl 19 HRESULT put_internetMediaSharingSecurityGroup(LPWSTR securityGroup)

put_internetMediaSharingSecurityGroup メソッドは、インターネット経由の受信接続の認証に使用されるセキュリティグループの名前を指定します。

securityGroupLPWSTRinセキュリティグループの名前を指定する BSTR

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。

解説(Remarks)

インターネットメディア共有のセキュリティグループは Windows Home Server にのみ適用されます。他のバージョンの Windows 上で実行されているアプリケーションも put_internetMediaSharingSecurityGroup および get_internetMediaSharingSecurityGroup を呼び出すことはできますが、呼び出しは効果を持ちません。

vtbl 20 HRESULT get_allowSharingToAllDevices(VARIANT_BOOL* sharingEnabled)

get_allowSharingToAllDevices メソッドは、現在のユーザーのメディアライブラリがホームネットワーク上のすべてのデバイスと共有されているかどうかを示す値を取得します。

sharingEnabledVARIANT_BOOL*outメディアライブラリがすべてのデバイスと共有されている場合は VARIANT_TRUE、少なくとも 1 つのデバイスと共有されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 21 HRESULT put_allowSharingToAllDevices(VARIANT_BOOL sharingEnabled)

put_allowSharingToAllDevices メソッドは、現在のユーザーのメディアライブラリをホームネットワーク上のすべてのデバイスと共有することを許可または禁止します。

sharingEnabledVARIANT_BOOLin共有を許可する (VARIANT_TRUE) か許可しない (VARIANT_FALSE) かを指定する VARIANT_BOOL

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 22 HRESULT setDefaultAuthorization(LPWSTR MACAddresses, LPWSTR friendlyName, VARIANT_BOOL authorization)

setDefaultAuthorization メソッドは、指定された一連のデバイスによるすべてのユーザーのメディアライブラリへのアクセスを有効または無効にします。

MACAddressesLPWSTRinアクセスを有効または無効にするデバイスの MAC アドレスを指定する BSTR。MAC アドレスはコンマ区切りで指定します。
friendlyNameLPWSTRinMACAddresses パラメーターに列挙されたすべてのデバイスに適用されるフレンドリ名を指定する BSTR
authorizationVARIANT_BOOLin一連のデバイスによるアクセスを有効にする (VARIANT_TRUE) か無効にする (VARIANT_FALSE) かを指定する VARIANT_BOOL

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 23 HRESULT setAuthorizationState(LPWSTR MACAddress, VARIANT_BOOL authorizationState)

setAuthorizationState メソッドは、指定されたデバイスによる現在のユーザーのメディアライブラリへのアクセスを有効または無効にします。

MACAddressLPWSTRinアクセスを有効または無効にするデバイスの MAC アドレスを指定する BSTR
authorizationStateVARIANT_BOOLinデバイスによるアクセスを有効にする (VARIANT_TRUE) か無効にする (VARIANT_FALSE) かを指定する VARIANT_BOOL

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 24 HRESULT getAllDevices(IWindowsMediaLibrarySharingDevices** devices)

getAllDevices メソッドは、ホームネットワーク上のすべてのメディア共有クライアントデバイスを表す IWindowsMediaLibrarySharingDevices インターフェイスを取得します。

devicesIWindowsMediaLibrarySharingDevices**outIWindowsMediaLibrarySharingDevices インターフェイスへのポインターを受け取る変数へのポインター。

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。
vtbl 25 HRESULT get_customSettingsApplied(VARIANT_BOOL* customSettingsApplied)

get_customSettingsApplied メソッドは、現在のユーザーに対してカスタムのメディア共有設定が適用されているかどうかを示す値を取得します。

customSettingsAppliedVARIANT_BOOL*out現在のユーザーに対してカスタム設定が適用されている場合は VARIANT_TRUE、既定の設定が適用されている場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。

戻り値

このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。

戻り値 説明
S_OK
メソッドは成功しました。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IWindowsMediaLibrarySharingServices "{01F5F85E-0A81-40DA-A7C8-21EF3AF8440C}"
#usecom global IWindowsMediaLibrarySharingServices IID_IWindowsMediaLibrarySharingServices "{AD581B00-7B64-4E59-A38D-D2C5BF51DDB3}"
#comfunc global IWindowsMediaLibrarySharingServices_showShareMediaCPL                             7 wstr
#comfunc global IWindowsMediaLibrarySharingServices_get_userHomeMediaSharingState                 8 var
#comfunc global IWindowsMediaLibrarySharingServices_put_userHomeMediaSharingState                 9 int
#comfunc global IWindowsMediaLibrarySharingServices_get_userHomeMediaSharingLibraryName           10 var
#comfunc global IWindowsMediaLibrarySharingServices_put_userHomeMediaSharingLibraryName           11 wstr
#comfunc global IWindowsMediaLibrarySharingServices_get_computerHomeMediaSharingAllowedState      12 var
#comfunc global IWindowsMediaLibrarySharingServices_put_computerHomeMediaSharingAllowedState      13 int
#comfunc global IWindowsMediaLibrarySharingServices_get_userInternetMediaSharingState             14 var
#comfunc global IWindowsMediaLibrarySharingServices_put_userInternetMediaSharingState             15 int
#comfunc global IWindowsMediaLibrarySharingServices_get_computerInternetMediaSharingAllowedState  16 var
#comfunc global IWindowsMediaLibrarySharingServices_put_computerInternetMediaSharingAllowedState  17 int
#comfunc global IWindowsMediaLibrarySharingServices_get_internetMediaSharingSecurityGroup         18 var
#comfunc global IWindowsMediaLibrarySharingServices_put_internetMediaSharingSecurityGroup         19 wstr
#comfunc global IWindowsMediaLibrarySharingServices_get_allowSharingToAllDevices                  20 var
#comfunc global IWindowsMediaLibrarySharingServices_put_allowSharingToAllDevices                  21 int
#comfunc global IWindowsMediaLibrarySharingServices_setDefaultAuthorization                       22 wstr,wstr,int
#comfunc global IWindowsMediaLibrarySharingServices_setAuthorizationState                         23 wstr,int
#comfunc global IWindowsMediaLibrarySharingServices_getAllDevices                                 24 sptr
#comfunc global IWindowsMediaLibrarySharingServices_get_customSettingsApplied                     25 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。