符号なし整数型のメンバーを持つクラス、モジュール、または構造体を使用している場合は、Visual Basic でこれらのメンバーにアクセスできます。
符号なし型を受け取る Windows 関数を呼び出すには
Declare ステートメントを使用して、関数を保持するライブラリ、そのライブラリ内の名前、呼び出し元シーケンス、および呼び出し時に文字列を変換する方法を Visual Basic に伝えます。
Declare
ステートメントでは、符号なし型を持つ各パラメーターに対して、UInteger
、ULong
、UShort
、またはByte
を使用します。使用する定数の名前と値を見つけるには、呼び出す Windows 関数のドキュメントを参照してください。 これらの多くは WinUser.h ファイルで定義されています。
コードで必要な定数を宣言します。 多くの Windows 定数は 32 ビット符号なし値であり、これらの
As UInteger
を宣言する必要があります。通常の方法で関数を呼び出します。 次の例では、符号なし整数引数を受け取る 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
のデータ型は言語非依存コンポーネントおよび Language-Independent コンポーネント (CLS) の一部ではないため、CLS 準拠コードは、それらを使用するコンポーネントを使用できません。Von Bedeutung
Windows アプリケーション プログラミング インターフェイス (API) などのアンマネージ コードを呼び出すと、コードが潜在的なセキュリティ リスクにさらされます。
Von Bedeutung
Windows API を呼び出す場合は、アンマネージ コードのアクセス許可が必要です。これは、部分信頼の状況での実行に影響を与える可能性があります。 詳細については、「 SecurityPermission および コード アクセス許可」を参照してください。
こちらも参照ください
.NET