符号なし整数型のメンバーを持つクラス、モジュール、または構造体を使用している場合は、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