Win32 API 日本語リファレンス
ホームDevices.PortableDevices › IPortableDeviceServiceCapabilities

IPortableDeviceServiceCapabilities

COM
IID24dbd89d-413e-43e0-bd5b-197f3c56c886継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

サービスの機能(ケイパビリティ)を示す情報を取得します。

メソッド 16

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetSupportedMethods(IPortableDevicePropVariantCollection** ppMethods)

サービスがサポートするメソッドを取得します。

ppMethodsIPortableDevicePropVariantCollection**outメソッドの一覧を受け取る IPortableDevicePropVariantCollection インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

vtbl 4 HRESULT GetSupportedMethodsByFormat(GUID* Format, IPortableDevicePropVariantCollection** ppMethods)

指定したフォーマットについて、サービスがサポートするメソッドを取得します。

FormatGUID*inサポートされるメソッドを取得する対象のフォーマット。
ppMethodsIPortableDevicePropVariantCollection**outメソッドの一覧を受け取る IPortableDevicePropVariantCollection インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

vtbl 5 HRESULT GetMethodAttributes(GUID* Method, IPortableDeviceValues** ppAttributes)

指定したメソッドを説明する属性を取得します。

MethodGUID*in属性を取得する対象のメソッド。
ppAttributesIPortableDeviceValues**out属性の一覧を受け取る IPortableDeviceValues インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

取得され得る属性には、WPD_METHOD_ATTRIBUTE_NAMEWPD_METHOD_ATTRIBUTE_ASSOCIATED_FORMATWPD_METHOD_ATTRIBUTE_ACCESSWPD_METHOD_ATTRIBUTE_PARAMETERS の各プロパティなどがあります。

このメソッドの使用例については、Retrieving Supported Service Methods を参照してください。

vtbl 6 HRESULT GetMethodParameterAttributes(GUID* Method, PROPERTYKEY* Parameter, IPortableDeviceValues** ppAttributes)

指定したメソッドパラメーターを説明する属性を取得します。

MethodGUID*in属性を取得する対象のパラメーターを含むメソッド。
ParameterPROPERTYKEY*in属性を取得する対象のパラメーター。
ppAttributesIPortableDeviceValues**out属性の一覧を受け取る IPortableDeviceValues インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

取得され得る属性には、WPD_PARAMETER_ATTRIBUTE_ORDERWPD_PARAMETER_ATTRIBUTE_USAGEWPD_PARAMETER_ATTRIBUTE_NAMEWPD_PARAMETER_ATTRIBUTE_VARTYPE の各プロパティなどがあります。

このメソッドの使用例については、Retrieving Supported Service Methods を参照してください。

vtbl 7 HRESULT GetSupportedFormats(IPortableDevicePropVariantCollection** ppFormats)

サービスがサポートするフォーマットを取得します。

ppFormatsIPortableDevicePropVariantCollection**outフォーマットの一覧を受け取る IPortableDevicePropVariantCollection インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

vtbl 8 HRESULT GetFormatAttributes(GUID* Format, IPortableDeviceValues** ppAttributes)

フォーマットの属性を取得します。

FormatGUID*in属性を取得する対象のフォーマット。
ppAttributesIPortableDeviceValues**out属性の一覧を受け取る IPortableDeviceValues インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

よく取得される属性の例として WPD_FORMAT_ATTRIBUTE_NAME があります。

このメソッドの使用例については、Retrieving Supported Service Formats を参照してください。

vtbl 9 HRESULT GetSupportedFormatProperties(GUID* Format, IPortableDeviceKeyCollection** ppKeys)

指定したフォーマットについて、サービスがサポートするプロパティを取得します。

FormatGUID*inプロパティを取得する対象のフォーマット。
ppKeysIPortableDeviceKeyCollection**outプロパティの一覧を受け取る IPortableDeviceKeyCollection インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

取得されるプロパティのコレクションは、指定したフォーマットのオブジェクトがサポートするすべてのプロパティの上位集合(スーパーセット)です。

アプリケーションは、IPortableDeviceService::SendCommand メソッドにコマンド識別子として WPD_COMMAND_OBJECT_PROPERTIES_GET_SUPPORTED プロパティを渡して呼び出すことでも、オブジェクトのプロパティを取得できます。ただし、通常は GetSupportedFormatProperties メソッドのほうが IPortableDeviceService::SendCommand メソッドよりも高速です。

vtbl 10 HRESULT GetFormatPropertyAttributes(GUID* Format, PROPERTYKEY* Property, IPortableDeviceValues** ppAttributes)

フォーマットプロパティの属性を取得します。

FormatGUID*in属性を取得する対象のプロパティを持つフォーマット。
PropertyPROPERTYKEY*in属性を取得する対象のプロパティ。
ppAttributesIPortableDeviceValues**out属性の一覧を受け取る IPortableDeviceValues インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

Windows Portable Devices (WPD) ドライバーは、あるフォーマットのオブジェクトを同一に扱うことが多くあります。そのため、多くのプロパティは、そのフォーマットのすべてのオブジェクトで同一の属性を持ちます。このメソッドはそうした属性を取得します。

なお、このメソッドはオブジェクトのインスタンスごとに異なる属性は取得しません。

vtbl 11 HRESULT GetSupportedEvents(IPortableDevicePropVariantCollection** ppEvents)

サービスがサポートするイベントを取得します。

ppEventsIPortableDevicePropVariantCollection**outイベントの一覧を受け取る IPortableDevicePropVariantCollection インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

vtbl 12 HRESULT GetEventAttributes(GUID* Event, IPortableDeviceValues** ppAttributes)

イベントの属性を取得します。

EventGUID*in属性を取得する対象のイベント。
ppAttributesIPortableDeviceValues**out属性の一覧を受け取る IPortableDeviceValues インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

取得され得る属性には、WPD_EVENT_ATTRIBUTE_NAMEWPD_EVENT_ATTRIBUTE_PARAMETERSWPD_EVENT_ATTRIBUTE_OPTIONS の各プロパティなどがあります。

このメソッドの使用例については、Retrieving Supported Service Events を参照してください。

vtbl 13 HRESULT GetEventParameterAttributes(GUID* Event, PROPERTYKEY* Parameter, IPortableDeviceValues** ppAttributes)

イベントパラメーターの属性を取得します。

EventGUID*in属性を取得する対象のパラメーターを含むイベント。
ParameterPROPERTYKEY*in属性を取得する対象のパラメーター。
ppAttributesIPortableDeviceValues**out属性の一覧を受け取る IPortableDeviceValues インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

取得され得る属性値には、WPD_PARAMETER_ATTRIBUTE_VARTYPE および WPD_PARAMETER_ATTRIBUTE_FORM の各プロパティなどがあります。

このメソッドの使用例については、Retrieving Supported Service Events を参照してください。

vtbl 14 HRESULT GetInheritedServices(DWORD dwInheritanceType, IPortableDevicePropVariantCollection** ppServices)

指定した継承の種類を持つサービスを取得します。

dwInheritanceTypeDWORDin取得する継承サービスの種類。
ppServicesIPortableDevicePropVariantCollection**outサービスの一覧を受け取る IPortableDevicePropVariantCollection インターフェイス。継承サービスが見つからない場合は、空のコレクションが返されます。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

現在のところ、デバイスサービスは抽象サービスを実装することによってのみ継承できます。これは、オブジェクト指向プログラミングにおいてクラスが抽象インターフェイスや仮想クラスのメソッドを実装するのと同様です。抽象サービスを実装することで、デバイスサービスはその抽象サービスが定義するすべてのフォーマット、プロパティ、およびメソッドの動作をサポートします。たとえば、Contacts サービスが Anchor Sync 抽象サービスを実装し、デバイスが PC との前回の同期以降にどの連絡先が更新されたかを示すマーカーを保存する、といったことが考えられます。

dwInheritanceType パラメーターに指定できる値は、WPD_SERVICE_INHERITANCE_TYPES 列挙型で定義されているものです。(Windows 7 では、WPD_SERVICE_INHERITANCE_IMPLEMENTATION 列挙定数のみがサポートされます。)

dwInheritanceType パラメーターの値が WPD_SERVICE_INHERITANCE_IMPLEMENTATION の場合、ppServices パラメーターで指定されるコレクション内の各項目のバリアント型は VT_CLSID になります。

vtbl 15 HRESULT GetFormatRenderingProfiles(GUID* Format, IPortableDeviceValuesCollection** ppRenderingProfiles)

フォーマットのレンダリングプロファイルを取得します。

FormatGUID*inレンダリングプロファイルを取得する対象のフォーマット。
ppRenderingProfilesIPortableDeviceValuesCollection**outレンダリングプロファイルの一覧を受け取る IPortableDeviceValuesCollection オブジェクト。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

ここで取得されるレンダリングプロファイルは、WPD_FUNCTIONAL_CATEGORY_RENDERING_INFORMATION 機能オブジェクトがデバイス全体のレンダリングプロファイルとして返すものと類似しています。そのため、Retrieving the Rendering Capabilities Supported by a Device で説明されているヘルパー関数 DisplayRenderingProfile をここでも利用できます。ただし相違点もあります。GetFormatRenderingProfiles メソッドは、選択したサービスに適用され、かつフォーマットで絞り込まれたレンダリングプロファイルのみを取得します。

vtbl 16 HRESULT GetSupportedCommands(IPortableDeviceKeyCollection** ppCommands)

サービスがサポートするコマンドを取得します。

ppCommandsIPortableDeviceKeyCollection**outコマンドの一覧を受け取る IPortableDeviceKeyCollection インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

vtbl 17 HRESULT GetCommandOptions(PROPERTYKEY* Command, IPortableDeviceValues** ppOptions)

WPD コマンドのオプションを取得します。

CommandPROPERTYKEY*inオプションを取得する対象のコマンド。
ppOptionsIPortableDeviceValues**outオプションの一覧を受け取る IPortableDeviceValues インターフェイス。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

vtbl 18 HRESULT Cancel()

保留中の操作をキャンセルします。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の HRESULT 値は呼び出しが失敗したことを示します。

解説(Remarks)

このメソッドは、現在のサービスハンドル(IPortableDeviceService インターフェイスに関連付けられたセッションに対応します)上の保留中のすべての操作をキャンセルします。Windows Portable Devices (WPD) API は、特定の操作のみを対象としたキャンセルをサポートしていません。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IPortableDeviceServiceCapabilities "{24DBD89D-413E-43E0-BD5B-197F3C56C886}"
#usecom global IPortableDeviceServiceCapabilities IID_IPortableDeviceServiceCapabilities "{}"
#comfunc global IPortableDeviceServiceCapabilities_GetSupportedMethods           3 sptr
#comfunc global IPortableDeviceServiceCapabilities_GetSupportedMethodsByFormat   4 var,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetMethodAttributes           5 var,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetMethodParameterAttributes  6 var,var,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetSupportedFormats           7 sptr
#comfunc global IPortableDeviceServiceCapabilities_GetFormatAttributes           8 var,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetSupportedFormatProperties  9 var,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetFormatPropertyAttributes   10 var,var,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetSupportedEvents            11 sptr
#comfunc global IPortableDeviceServiceCapabilities_GetEventAttributes            12 var,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetEventParameterAttributes   13 var,var,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetInheritedServices          14 int,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetFormatRenderingProfiles    15 var,sptr
#comfunc global IPortableDeviceServiceCapabilities_GetSupportedCommands          16 sptr
#comfunc global IPortableDeviceServiceCapabilities_GetCommandOptions             17 var,sptr
#comfunc global IPortableDeviceServiceCapabilities_Cancel                        18
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。