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

ISpDataKey

COM
IID14056581-e16c-11d2-bb90-00c04f8ee6c0継承元IUnknown自前メソッド開始 vtbl3

メソッド 12

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

vtbl 3 HRESULT SetData(LPWSTR pszValueName, DWORD cbData, BYTE* pData)
pszValueNameLPWSTRin設定する値の名前。NULLでキーの既定値を対象にできる。
cbDataDWORDinpDataが指すデータのバイト数。
pDataBYTE*in格納するバイナリデータの先頭ポインタ。
vtbl 4 HRESULT GetData(LPWSTR pszValueName, DWORD* pcbData, BYTE* pData)
pszValueNameLPWSTRin取得する値の名前。NULLで既定値を対象にできる。
pcbDataDWORD*inout入力でバッファサイズ、出力で実データバイト数を受け取るポインタ。
pDataBYTE*inout取得データを受け取るバッファ。NULLで必要サイズのみ問い合わせる。
vtbl 5 HRESULT SetStringValue(LPWSTR pszValueName, LPWSTR pszValue)
pszValueNameLPWSTRinoptional設定する文字列値の名前。NULLで既定値を対象にできる。
pszValueLPWSTRin格納するUnicode文字列。
vtbl 6 HRESULT GetStringValue(LPWSTR pszValueName, LPWSTR* ppszValue)
pszValueNameLPWSTRinoptional取得する文字列値の名前。NULLで既定値を対象にできる。
ppszValueLPWSTR*out取得した文字列を受け取るポインタ。CoTaskMemFreeで解放する。
vtbl 7 HRESULT SetDWORD(LPWSTR pszValueName, DWORD dwValue)
pszValueNameLPWSTRin設定するDWORD値の名前。
dwValueDWORDin格納する32ビット数値。
vtbl 8 HRESULT GetDWORD(LPWSTR pszValueName, DWORD* pdwValue)
pszValueNameLPWSTRin取得するDWORD値の名前。
pdwValueDWORD*inout取得した32ビット数値を受け取るポインタ。
vtbl 9 HRESULT OpenKey(LPWSTR pszSubKeyName, ISpDataKey** ppSubKey)
pszSubKeyNameLPWSTRin開くサブキーの名前。
ppSubKeyISpDataKey**out開いたサブキーのISpDataKeyを受け取るポインタ。
vtbl 10 HRESULT CreateKey(LPWSTR pszSubKey, ISpDataKey** ppSubKey)
pszSubKeyLPWSTRin作成するサブキーの名前。既存なら開く。
ppSubKeyISpDataKey**out作成または開いたサブキーのISpDataKeyを受け取るポインタ。
vtbl 11 HRESULT DeleteKey(LPWSTR pszSubKey)
pszSubKeyLPWSTRin削除するサブキーの名前。
vtbl 12 HRESULT DeleteValue(LPWSTR pszValueName)
pszValueNameLPWSTRin削除する値の名前。
vtbl 13 HRESULT EnumKeys(DWORD Index, LPWSTR* ppszSubKeyName)
IndexDWORDin列挙するサブキーの0始まりインデックス。
ppszSubKeyNameLPWSTR*out取得したサブキー名を受け取るポインタ。CoTaskMemFreeで解放する。
vtbl 14 HRESULT EnumValues(DWORD Index, LPWSTR* ppszValueName)
IndexDWORDin列挙する値の0始まりインデックス。
ppszValueNameLPWSTR*out取得した値名を受け取るポインタ。CoTaskMemFreeで解放する。

HSP用 COM定義

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

出力引数:
#define global IID_ISpDataKey "{14056581-E16C-11D2-BB90-00C04F8EE6C0}"
#usecom global ISpDataKey IID_ISpDataKey "{D9F6EE60-58C9-458B-88E1-2F908FD7F87C}"
#comfunc global ISpDataKey_SetData         3 wstr,int,var
#comfunc global ISpDataKey_GetData         4 wstr,var,var
#comfunc global ISpDataKey_SetStringValue  5 wstr,wstr
#comfunc global ISpDataKey_GetStringValue  6 wstr,var
#comfunc global ISpDataKey_SetDWORD        7 wstr,int
#comfunc global ISpDataKey_GetDWORD        8 wstr,var
#comfunc global ISpDataKey_OpenKey         9 wstr,sptr
#comfunc global ISpDataKey_CreateKey       10 wstr,sptr
#comfunc global ISpDataKey_DeleteKey       11 wstr
#comfunc global ISpDataKey_DeleteValue     12 wstr
#comfunc global ISpDataKey_EnumKeys        13 int,var
#comfunc global ISpDataKey_EnumValues      14 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。