方法 : 符号なしの型を使用する Windows の機能を呼び出す
更新 : 2007 年 11 月
符号なし整数型のメンバがあるクラス、モジュール、または構造体を使用している場合、Visual Basic を使用してこれらのメンバにアクセスできます。
符号なしの型を使用する Windows の機能を呼び出すには
Declare ステートメントを使用して、機能を保持しているライブラリ、ライブラリ内での名前、呼び出し元のシーケンス、呼び出し時に文字列を変換する方法を Visual Basic に伝えます。
Declare ステートメントで、符号なしの型を持つ各パラメータに応じて UInteger、ULong、UShort、または Byte を使用します。
呼び出している Windows の機能のドキュメントを参照し、使用されている定数の名前および値を調べます。これらの多くは、WinUser.h ファイルで定義されています。
コードで、必要な定数を宣言します。多くの Windows 定数は 32 ビットの符号なしの値であり、これらの AsUInteger を宣言する必要があります。
通常の方法で機能を呼び出します。符号なしの整数の引数を使用する、Windows の機能である MessageBox を呼び出す例を次に示します。
Public Class windowsMessage Private Declare Auto Function mb Lib "user32.dll" Alias "MessageBox" _ (ByVal hWnd As Integer, _ ByVal lpText As String, _ ByVal lpCaption As String, _ ByVal uType As UInteger) As Integer Private Const MB_OK As UInteger = 0 Private Const MB_ICONEXCLAMATION As UInteger = &H30 Private Const IDOK As UInteger = 1 Private Const IDCLOSE As UInteger = 8 Private Const c As UInteger = MB_OK Or MB_ICONEXCLAMATION Public Function messageThroughWindows() As String Dim r As Integer = mb(0, "Click OK if you see this!", _ "Windows API call", c) Dim s As String = "Windows API MessageBox returned " _ & CStr(r)& vbCrLf & "(IDOK = " & CStr(IDOK) _ & ", IDCLOSE = " & CStr(IDCLOSE) & ")" Return s End Function End Class
messageThroughWindows の機能をテストするためには、次のコードを使用してください。
Public Sub consumeWindowsMessage() Dim w As New windowsMessage w.messageThroughWindows() End Sub
注意 : UInteger、ULong、UShort、および SByte データ型は、共通言語仕様 (CLS) 一部ではありません。したがって、CLS 準拠のコードでは、これらを使用するコンポーネントを使用できません。
セキュリティに関するメモ : Windows アプリケーション プログラミング インターフェイス (API: Application Programming Interface) などのアンマネージ コードへの呼び出しを実行すると、潜在的なセキュリティ リスクにコードが公開されます。
セキュリティに関するメモ : Windows API の呼び出しにはアンマネージ コード アクセス許可が必要です。ただし、部分的に信頼されている状況でこの許可を使用すると、プログラムの実行に影響を及ぼす場合があります。詳細については、「SecurityPermission」および「コード アクセス許可」を参照してください。
参照
処理手順
方法 : unsigned 型を使用して正の整数のストレージを最適化する