LastDllError プロパティ (Err オブジェクト)

更新 : 2007 年 11 月

ダイナミック リンク ライブラリ (DLL) の呼び出しにより作成されたシステム エラー コードを返します。読み取り専用です。

ReadOnly Property LastDllError() As Integer

解説

LastDllError プロパティは Visual Basic コードから作成された DLL 呼び出しだけに適用されます。呼び出しが実行されると、呼び出された関数は、通常、成功か失敗かを示すコードを返し、LastDllError プロパティを設定します。戻り値が成功と失敗のどちらを示しているかを判断するには、DLL の関数のドキュメントを参照してください。失敗を表すコードが返されると、Visual Basic アプリケーションはすぐに LastDllError プロパティを確認します。LastDllError プロパティが設定される場合、例外はまったく発生しません。

yb8afh2h.alert_note(ja-jp,VS.90).gifメモ :

LastDllError プロパティは LinkDemand によって保護されています。これは、信頼関係のないコードからアクセスされるのを防ぐのに役立ちます。ただし、LinkDemand に必要なのは UnmanagedCode アクセス許可を持つ直接の呼び出し元だけです。信頼性が一部しか確認されていないコードから呼び出すことができるコードの場合、検証せずに LastDllError の値を開示することはセキュリティ上のリスクとなります。

LinkDemand メンバの使用方法に関する重要な制約事項については、「Demand と LinkDemand」を参照してください。アクセス許可の詳細については、「SecurityPermission」および「コード アクセス許可」を参照してください。

使用例

次の例では、Windows API で関数を呼び出した後で LastDllError プロパティを使用する方法を示します。PrintWindowCoordinates プロシージャは、ウィンドウのハンドルを取得し、GetWindowRect 関数を呼び出します。GetWindowRect は RECT データ構造に、ウィンドウを構成する四角形の各辺の長さを格納します。無効なハンドルを渡すとエラーが発生し、このエラー番号は LastDllError プロパティで参照できます。

Declare Function GetWindowRect Lib "user32" _
(ByVal hwnd As Integer, ByRef lpRect As RECT) As Integer


...



Public Structure RECT
    Public Left As Integer
    Public Top As Integer
    Public Right As Integer
    Public Bottom As Integer
End Structure


...



Const ERROR_INVALID_WINDOW_HANDLE As Long = 1400
Const ERROR_INVALID_WINDOW_HANDLE_DESCR As String = _
"Invalid window handle."
Private Sub PrintWindowCoordinates(ByVal hwnd As Integer)
' Prints left, right, top, and bottom positions
' of a window in pixels.

  Dim rectWindow As RECT

  ' Pass in window handle and empty the data structure.
  ' If function returns 0, an error occurred.
  If GetWindowRect(hwnd, rectWindow) = 0 Then
      ' Check LastDllError and display a dialog box if the error
      ' occurred because an invalid handle was passed.
      If Err.LastDllError = ERROR_INVALID_WINDOW_HANDLE Then
          MsgBox(ERROR_INVALID_WINDOW_HANDLE_DESCR, Title:="Error!")
      End If
  Else
      Debug.Print(rectWindow.Bottom)
      Debug.Print(rectWindow.Left)
      Debug.Print(rectWindow.Right)
      Debug.Print(rectWindow.Top)
  End If
End Sub

スマート デバイス開発者のためのメモ

このプロパティは常にゼロを返します。

必要条件

名前空間 : Microsoft.VisualBasic

モジュール : ErrObject

アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll)

参照

概念

Demand と LinkDemand

参照

Err オブジェクト (Visual Basic)

Declare ステートメント

Description プロパティ (Err オブジェクト)

ErrorToString 関数

HelpContext プロパティ (Err オブジェクト)

HelpFile プロパティ (Err オブジェクト)

Number プロパティ (Err オブジェクト)

Source プロパティ (Err オブジェクト)