次の方法で共有


ID3D10InfoQueue::GetMessage

メッセージ キューからメッセージを取得します。

HRESULT 
GetMessage(
  UINT64 MessageIndex,
  D3D10_MESSAGE *pMessage,
  SIZE_T *pMessageByteLength
);

パラメータ

  • MessageIndex
    メッセージ キュー内のインデックスです。オプションで取得フィルターが適用される場合は、適用後のインデックスとなります。これには、0 以上、メッセージ キュー内で取得フィルターを通過したメッセージの数以下の値を指定できます (このメッセージ数は ID3D10InfoQueue::GetNumStoredMessagesAllowedByRetrievalFilter を使用して取得できます)。0 は、メッセージ キューの先頭にあるメッセージを意味します。
  • pMessage
    返されるメッセージです (「D3D10_MESSAGE」を参照してください)。
  • pMessageByteLength
    pMessage のサイズ (バイト単位) です。これには、pMessage が指し示すメッセージ文字列のサイズも含まれます。

戻り値

このメソッドは、「Direct3D 10 のリターン コード」のいずれかを返します。

解説 

このメソッドを使用しても、メッセージ キューからメッセージが削除されることはありません。

このメソッドは、オプションの取得フィルターを適用した後で、メッセージ キューからメッセージを取得します。

メッセージを取得するには、アプリケーションでこのメソッドを 2 回呼び出す必要があります。最初の呼び出しでメッセージのサイズを取得し、2 回目の呼び出しでメッセージ自体を取得します。以下に一般的な例を示します。

// Get the size of the message
SIZE_T messageLength = 0;
HRESULT hr = pInfoQueue->GetMessage(0, NULL, &messageLength);

// Allocate space and get the message
D3D10_MESSAGE * pMessage = (D3D10_MESSAGE*)malloc(messageLength);
hr = pInfoQueue->GetMessage(0, pMessage, &messageLength);

概要については、「情報キューの概要」を参照してください。

要件

ヘッダー: D3D10SDKLayers.h 宣言

関連項目

ID3D10InfoQueue インターフェイス