Win32 APIはWindowsディレクトリに存在するuser32.dll等のSystem Dllが持つ関数(HSPで言うところの命令)のことを呼びます。Win32 APIはWindowsで動くアプリケーション(以下Win32アプリ)を作るための関数を提供します。Win32アプリケーションは全てこのWin32 APIを呼び出しています。
Win32 APIはWindows95時代に完成されたものではなく、Windowsのバージョンアップ==Win32 APIの追加です。そのため古いWindowsでは使用できない関数もありますので、十分注意してください。有名どころとしてはWindows2000で追加されたレイヤードウィンドウがあげられます。
また、プロセス周りなどではWindows9xとNT系では大きく仕様が異なるなど、9xとNTの内部の違いに起因する問題もあります。下位については基本的に保障されているので問題ないでしょう。
HSPはアルファベット(半角文字)が1バイト、日本語(全角文字)が2バイトのシングルバイト文字コードを使用します。Windows 9x世代のAPIは一部を除いて全てこれで処理できますが、NTが扱う文字コードはUnicode、マルチバイト文字コードを使用するものがあります。これら両者をサポートしている関数は最後に'A'または'W'がつきます。(SendMessageA,SendMessageW)シングルバイト文字は'A'がつく関数であり、通常はこれを用いればよいでしょう。
Unicodeのみをサポートする関数を呼び出す場合は文字コードの変換が必要になります。Unicodeのみをサポートする関数の例としては、GDI+があげられます。
HSPは殆ど「捨てる」という概念がありませんが、Win32 APIは「貰ったものは返す」が定石です。これを怠った場合最悪再起動が必要になる場合があります。
LonghornではWin32 APIはWinFX APIにとって代わられ、Win32 APIは互換性のためだけに残されることが勧告されています。WinFX APIは.NET Frameworkを延長した位置にありManagedコードから使用されます。
現時点のHSPはManagedコードを扱うことはできないため、これを使用することはできません。最もLonghorn自体まだ先の話であり、将来的にどうなるかは不明です。
Copyright(C) by Project.API