ID3D11InfoQueue::GetMessage 方法 (d3d11sdklayers.h)

从消息队列获取消息。

语法

HRESULT GetMessage(
  [in]            UINT64        MessageIndex,
  [out, optional] D3D11_MESSAGE *pMessage,
  [in, out]       SIZE_T        *pMessageByteLength
);

参数

[in] MessageIndex

类型: UINT64

应用可选检索筛选器后,索引到消息队列中。 这可以介于 0 和消息队列中通过检索筛选器的消息数 (可通过 ID3D11InfoQueue::GetNumStoredMessagesAllowedByRetrievalFilter) 获取。 0 是消息队列前面的消息。

[out, optional] pMessage

类型: D3D11_MESSAGE*

返回的消息 (看到 D3D11_MESSAGE) 。

[in, out] pMessageByteLength

类型: SIZE_T*

pMessage 的大小(以字节为单位),包括 pMessage 指向的消息字符串的大小。

返回值

类型: HRESULT

此方法返回以下 Direct3D 11 返回代码之一

注解

此方法不会从消息队列中删除任何消息。

此方法在应用可选检索筛选器后从消息队列中获取消息。

应用程序应调用此方法两次以检索消息 - 第一次是获取消息的大小,第二次是获取消息。 下面是一个典型示例:


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

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

有关概述,请参阅 信息队列概述

要求

要求
目标平台 Windows
标头 d3d11sdklayers.h
Library D3D11.lib

另请参阅

ID3D11InfoQueue 接口