![]() | TOP | ![]() | 今月刊 | ![]() | 既刊 | ![]() | I/O | ![]() | サポート | ![]() | Q&A | ![]() | Web I/O | ![]() | 通販 | ![]() | お問い合わせ | ![]() |
|
不明なデータ型が存在する場合、
一番確実な方法は Platform SDKに含まれている、
ヘッダファイル(拡張子 .hのファイル)から調べる方法です。
現在、Platform SDKは以下の URLからダウンロードできます。
(http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en#filelist)
ヘッダファイルには C/C++からAPIを使うための
関数やデータ型の定義が記述されています。
37ページで書いているとおり、APIの独自のデータ型は、
基本的なデータ型やその配列、構造体を別のデータ型名として
定義しているものがほとんどです。
ですから、ヘッダファイルの定義から元々のデータ型を調べ、
そこから対応するデータ型として扱えばよいことになります。
例えば、ご質問の HDDEDATAは Platform SDKの
ddeml.hというファイルの中で、以下のように定義されています。
DECLARE_HANDLE(HDDEDATA);
DECLARE_HANDLEは、C/C++のマクロという構文を用いて、
HANDLE型として定義するものです。
HANDLE型は 62ページの対応表から、
IntPtrを用いればよいことがわかります。
ちなみに、HANDLE型の実体は、
38ページの一覧表を見ると void *という型無しのポインタになっています。
基本的にViualBasic.NETにはポインタが存在しないため、
Win32APIでポインタとして定義されているものは
IntPtr型を用います。(文字列は例外的にString型が使えます。)
このほかのデータ型についても、
同様の方法で元々のデータ型を調べる事で、
対応するデータ型を見つける事ができます。
ちなみにヘッダファイルの検索は、
エクスプローラでヘッダファイルが存在するフォルダに移動し、
Ctrl+Fで「ファイルとフォルダの検索」を開き、
「含まれる文字列」に探したいデータ型名を入力して実行します。
また、ファイル検索用のソフトを使うとより便利です。