方法: 符号なしの型を使用する Windows の機能を呼び出す (Visual Basic)
符号なし整数型のメンバーがあるクラス、モジュール、または構造体を使用している場合、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」および「コード アクセス許可」を参照してください。
参照
処理手順
チュートリアル: Windows API の呼び出し (Visual Basic)