IWindowsMediaLibrarySharingServices
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IWindowsMediaLibrarySharingServices インターフェイスは、ローカルコンピューター上のユーザー、ホームネットワーク上のユーザー、およびインターネット上のユーザーの間でのメディアライブラリの共有を構成するメソッドを定義します。
解説(Remarks)
IWindowsMediaLibrarySharingServices インターフェイスを取得するには、CoCreateInstance を呼び出して WindowsMediaLibrarySharingServices オブジェクトを作成します。
メソッド 19
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
showShareMediaCPL メソッドは、コントロールパネルのメディア共有ページを表示し、指定されたデバイスを強調表示します。
| device | LPWSTR | in | BSTR |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
device が NULL の場合、または device が空の BSTR の場合、フォーカスは既定のダイアログボックス要素に設定されます。また、device が空でない BSTR であっても、既知のデバイスの MAC アドレスでない場合は、フォーカスは既定のダイアログボックス要素に設定されます。
get_userHomeMediaSharingState メソッドは、現在のユーザーのメディアライブラリがホームネットワーク上で共有されているかどうかを示す値を取得します。
| sharingEnabled | VARIANT_BOOL* | out | メディアライブラリが共有されている場合は VARIANT_TRUE、共有されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
コンピューターに対してホームメディア共有が許可されていない場合、現在のユーザーがホームメディア共有を有効にしているかどうかに関係なく、このメソッドは VARIANT_FALSE を取得します。
コンピューターに対してホームメディア共有が許可されており、かつ現在のユーザーがホームメディア共有を有効にしている場合、このメソッドは VARIANT_TRUE を取得します。
put_userHomeMediaSharingState メソッドは、現在のユーザーのメディアライブラリのホームネットワーク上での共有を有効または無効にします。
| sharingEnabled | VARIANT_BOOL | in | 現在のユーザーについて共有を有効にする (VARIANT_TRUE) か無効にする (VARIANT_FALSE) かを指定する VARIANT_BOOL。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
コンピューターに対してホームメディア共有が許可されていない場合、現在のユーザーについてホームメディア共有が有効かどうかに関係なく、他のユーザーは現在のユーザーのメディアライブラリにアクセスできません。
コンピューターに対してホームメディア共有が許可されており、かつ現在のユーザーについてホームメディア共有が有効になっている場合、ホームネットワーク上の他のユーザーは現在のユーザーのメディアライブラリにアクセスできます。
get_userHomeMediaSharingLibraryName メソッドは、現在のユーザーの共有メディアライブラリの名前を取得します。
| libraryName | LPWSTR* | out | ライブラリ名を受け取る BSTR へのポインター。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
put_userHomeMediaSharingLibraryName メソッドは、現在のユーザーの共有メディアライブラリの名前を設定します。
| libraryName | LPWSTR | in | ライブラリ名を指定する BSTR。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
get_computerHomeMediaSharingAllowedState メソッドは、コンピューター上のメディアライブラリをホームネットワーク上で共有することが許可されているかどうかを示す値を取得します。
| sharingAllowed | VARIANT_BOOL* | out | メディアライブラリの共有が許可されている場合は VARIANT_TRUE、許可されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
コンピューターに対してホームメディア共有が許可されていない場合、個々のユーザーがホームメディア共有を有効にしているかどうかに関係なく、どのユーザーのメディアライブラリもホームネットワーク上で共有されません。
コンピューターに対してホームメディア共有が許可されており、特定のユーザーがメディア共有を有効にしている場合、そのユーザーのメディアライブラリはホームネットワーク上で共有されます。
put_computerHomeMediaSharingAllowedState メソッドは、コンピューター上のメディアライブラリをホームネットワーク上で共有することを許可するかどうかを指定します。
| sharingAllowed | VARIANT_BOOL | in | メディアライブラリの共有が許可される場合は VARIANT_TRUE、許可されない場合は VARIANT_FALSE を指定する VARIANT_BOOL。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
このメソッドは、昇格された特権で実行されているコードから呼び出す必要があります。
コンピューターに対してホームメディア共有が許可されていない場合、個々のユーザーがホームメディア共有を有効にしているかどうかに関係なく、どのユーザーのメディアライブラリもホームネットワーク上で共有されません。
コンピューターに対してホームメディア共有が許可されており、特定のユーザーがメディア共有を有効にしている場合、そのユーザーのメディアライブラリはホームネットワーク上で共有されます。
get_userInternetMediaSharingState メソッドは、現在のユーザーのメディアライブラリがインターネット上で共有されているかどうかを示す値を取得します。
| sharingEnabled | VARIANT_BOOL* | out | メディアライブラリが共有されている場合は VARIANT_TRUE、共有されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
コンピューターに対してインターネットメディア共有が許可されていない場合、現在のユーザーがインターネットメディア共有を有効にしているかどうかに関係なく、このメソッドは VARIANT_FALSE を取得します。
コンピューターに対してインターネットメディア共有が許可されており、かつ現在のユーザーがインターネットメディア共有を有効にしている場合、このメソッドは VARIANT_TRUE を取得します。
put_userInternetMediaSharingState メソッドは、現在のユーザーのメディアライブラリのインターネット上での共有を有効または無効にします。
| sharingEnabled | VARIANT_BOOL | in | 現在のユーザーについてインターネット上での共有を有効にする (VARIANT_TRUE) か無効にする (VARIANT_FALSE) かを指定する VARIANT_BOOL。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
コンピューターに対してインターネットメディア共有が許可されていない場合、現在のユーザーについてインターネットメディア共有が有効かどうかに関係なく、インターネット上のユーザーは現在のユーザーのメディアライブラリにアクセスできません。
コンピューターに対してインターネットメディア共有が許可されており、かつ現在のユーザーについてインターネットメディア共有が有効になっている場合、インターネット上の他のユーザーは現在のユーザーのメディアライブラリにアクセスできます。
get_computerInternetMediaSharingAllowedState メソッドは、コンピューター上のメディアライブラリをインターネット上で共有することが許可されているかどうかを示す値を取得します。
| sharingAllowed | VARIANT_BOOL* | out | メディアライブラリの共有が許可されている場合は VARIANT_TRUE、許可されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
コンピューターに対してホームメディア共有が許可されていない場合、そのコンピューターではインターネットメディア共有も許可されません。
コンピューターに対してインターネットメディア共有が許可されていない場合、個々のユーザーがインターネットメディア共有を有効にしているかどうかに関係なく、どのユーザーのメディアライブラリもインターネット上で共有されません。
コンピューターに対してインターネットメディア共有が許可されており、特定のユーザーがインターネットメディア共有を有効にしている場合、そのユーザーのメディアライブラリはインターネット上で共有されます。
put_computerInternetMediaSharingAllowedState メソッドは、コンピューター上のメディアライブラリをインターネット上で共有することを許可するかどうかを指定します。
| sharingAllowed | VARIANT_BOOL | in | 共有を許可する (VARIANT_TRUE) か許可しない (VARIANT_FALSE) かを指定する VARIANT_BOOL。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
コンピューターに対してホームメディア共有が許可されていない場合、そのコンピューターではインターネットメディア共有は許可されません。
コンピューターに対してインターネットメディア共有が許可されていない場合、個々のユーザーがインターネットメディア共有を有効にしているかどうかに関係なく、どのユーザーのメディアライブラリもインターネット上で共有されません。
コンピューターに対してインターネットメディア共有が許可されており、特定のユーザーがインターネットメディア共有を有効にしている場合、そのユーザーのメディアライブラリはインターネット上で共有されます。
get_internetMediaSharingSecurityGroup メソッドは、インターネット経由の受信接続の認証に使用されるセキュリティグループの名前を取得します。
| securityGroup | LPWSTR* | out | セキュリティグループの名前を受け取る BSTR へのポインター。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
インターネットメディア共有のセキュリティグループは Windows Home Server にのみ適用されます。他のバージョンの Windows 上で実行されているアプリケーションも put_internetMediaSharingSecurityGroup および get_internetMediaSharingSecurityGroup を呼び出すことはできますが、呼び出しは効果を持ちません。
put_internetMediaSharingSecurityGroup メソッドは、インターネット経由の受信接続の認証に使用されるセキュリティグループの名前を指定します。
| securityGroup | LPWSTR | in | セキュリティグループの名前を指定する BSTR。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
解説(Remarks)
インターネットメディア共有のセキュリティグループは Windows Home Server にのみ適用されます。他のバージョンの Windows 上で実行されているアプリケーションも put_internetMediaSharingSecurityGroup および get_internetMediaSharingSecurityGroup を呼び出すことはできますが、呼び出しは効果を持ちません。
get_allowSharingToAllDevices メソッドは、現在のユーザーのメディアライブラリがホームネットワーク上のすべてのデバイスと共有されているかどうかを示す値を取得します。
| sharingEnabled | VARIANT_BOOL* | out | メディアライブラリがすべてのデバイスと共有されている場合は VARIANT_TRUE、少なくとも 1 つのデバイスと共有されていない場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
put_allowSharingToAllDevices メソッドは、現在のユーザーのメディアライブラリをホームネットワーク上のすべてのデバイスと共有することを許可または禁止します。
| sharingEnabled | VARIANT_BOOL | in | 共有を許可する (VARIANT_TRUE) か許可しない (VARIANT_FALSE) かを指定する VARIANT_BOOL。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
setDefaultAuthorization メソッドは、指定された一連のデバイスによるすべてのユーザーのメディアライブラリへのアクセスを有効または無効にします。
| MACAddresses | LPWSTR | in | アクセスを有効または無効にするデバイスの MAC アドレスを指定する BSTR。MAC アドレスはコンマ区切りで指定します。 |
| friendlyName | LPWSTR | in | MACAddresses パラメーターに列挙されたすべてのデバイスに適用されるフレンドリ名を指定する BSTR。 |
| authorization | VARIANT_BOOL | in | 一連のデバイスによるアクセスを有効にする (VARIANT_TRUE) か無効にする (VARIANT_FALSE) かを指定する VARIANT_BOOL。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
setAuthorizationState メソッドは、指定されたデバイスによる現在のユーザーのメディアライブラリへのアクセスを有効または無効にします。
| MACAddress | LPWSTR | in | アクセスを有効または無効にするデバイスの MAC アドレスを指定する BSTR。 |
| authorizationState | VARIANT_BOOL | in | デバイスによるアクセスを有効にする (VARIANT_TRUE) か無効にする (VARIANT_FALSE) かを指定する VARIANT_BOOL。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
getAllDevices メソッドは、ホームネットワーク上のすべてのメディア共有クライアントデバイスを表す IWindowsMediaLibrarySharingDevices インターフェイスを取得します。
| devices | IWindowsMediaLibrarySharingDevices** | out | IWindowsMediaLibrarySharingDevices インターフェイスへのポインターを受け取る変数へのポインター。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
get_customSettingsApplied メソッドは、現在のユーザーに対してカスタムのメディア共有設定が適用されているかどうかを示す値を取得します。
| customSettingsApplied | VARIANT_BOOL* | out | 現在のユーザーに対してカスタム設定が適用されている場合は VARIANT_TRUE、既定の設定が適用されている場合は VARIANT_FALSE を受け取る VARIANT_BOOL へのポインター。 |
戻り値
このメソッドは HRESULT を返します。戻り値には次の表の値が含まれますが、これらに限定されるものではありません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 |
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 不要)。#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 sptr #comfunc global IWindowsMediaLibrarySharingServices_put_userHomeMediaSharingState 9 int #comfunc global IWindowsMediaLibrarySharingServices_get_userHomeMediaSharingLibraryName 10 sptr #comfunc global IWindowsMediaLibrarySharingServices_put_userHomeMediaSharingLibraryName 11 wstr #comfunc global IWindowsMediaLibrarySharingServices_get_computerHomeMediaSharingAllowedState 12 sptr #comfunc global IWindowsMediaLibrarySharingServices_put_computerHomeMediaSharingAllowedState 13 int #comfunc global IWindowsMediaLibrarySharingServices_get_userInternetMediaSharingState 14 sptr #comfunc global IWindowsMediaLibrarySharingServices_put_userInternetMediaSharingState 15 int #comfunc global IWindowsMediaLibrarySharingServices_get_computerInternetMediaSharingAllowedState 16 sptr #comfunc global IWindowsMediaLibrarySharingServices_put_computerInternetMediaSharingAllowedState 17 int #comfunc global IWindowsMediaLibrarySharingServices_get_internetMediaSharingSecurityGroup 18 sptr #comfunc global IWindowsMediaLibrarySharingServices_put_internetMediaSharingSecurityGroup 19 wstr #comfunc global IWindowsMediaLibrarySharingServices_get_allowSharingToAllDevices 20 sptr #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 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。