IRealTimeStylus::GetDesiredPacketDescription 方法 (rtscom.h)
检索已请求包含在数据包流中的属性列表。
语法
HRESULT GetDesiredPacketDescription(
[in, out] ULONG *pcProperties,
[out] GUID **ppPropertyGuids
);
parameters
[in, out] pcProperties
ppPropertyGUIDS 缓冲区的大小(以字节为单位)。
[out] ppPropertyGuids
指向 GUID 列表的指针,指定数据包数据中存在的属性(如 X、Y 和 NormalPressure)。 有关预定义属性的列表,请参阅 PacketPropertyGuids 常量。
返回值
有关返回值的说明,请参阅 RealTimeStylus 类和接口。
注解
使用此方法通过调用 IRealTimeStylus::SetDesiredPacketDescription 方法获取 IRealTimeStylus 对象已订阅的数据包属性数组。 数据包属性由全局唯一标识符数组表示, (GUID) 。 有关可检索指标的属性的完整列表,请参阅 PacketPropertyGuids 常量。
默认值是包含 X、Y 和正常压力 GUID 的 GUID 数组。
IRealTimeStylus::GetDesiredPacketDescription 方法使用 CoTaskMemAlloc 为 GUID 分配空间。 当不再需要数组时,调用方应调用 CoTaskMemFree 。
如果在子 IRealTimeStylus 对象上调用 (级联配置) 并已连接,此方法将返回父级的数据包说明(如果已连接),否则此方法返回默认 (X、Y、压力) 或任何在对 IRealTimeStylus::SetDesiredPacketDescription 方法的调用中设置的属性。
以下列表介绍了 IRealTimeStylus 对象如何对数据包属性 GUID 进行排序。
- 默认情况下, IRealTimeStylus::GetDesiredPacketDescription 方法 返回GUID_X、GUID_Y和GUID_NORMAL_PRESSURE。
- X 和 Y GUID 始终由 IRealTimeStylus::GetDesiredPacketDescription 方法 在数组的前两个位置返回,无论它们是否在对 IRealTimeStylus::SetDesiredPacketDescription 方法 方法的调用中指定。
- 如果在调用 IRealTimeStylus::SetDesiredPacketDescription 方法 时指定了GUID_PACKET_STATUS,则 IRealTimeStylus::GetDesiredPacketDescription 方法 始终在数组中的最后一个位置返回GUID_PACKET_STATUS。
- 如果在对 IRealTimeStylus::SetDesiredPacketDescription 方法 方法的调用中多次指定任何 GUID,则每个 GUID 在 IRealTimeStylus::GetDesiredPacketDescription 方法 返回的数组中仅发生一次。
示例
以下 C++ 示例代码获取数据包流中包含的属性列表。
GUID guidDesiredPacketDescription[] = { GUID_PACKETPROPERTY_GUID_X,
GUID_PACKETPROPERTY_GUID_Y,
GUID_PACKETPROPERTY_GUID_NORMAL_PRESSURE,
GUID_PACKETPROPERTY_GUID_TANGENT_PRESSURE };
// Number of properties in the array
ULONG ulProperties = sizeof(guidDesiredPacketDescription) / sizeof(GUID);
// Set the packet information we'd like to get
if (SUCCEEDED(g_pRealTimeStylus->SetDesiredPacketDescription(ulProperties, guidDesiredPacketDescription)))
{
TRACE("Set the desired packet description successfully.\n");
}
GUID* pGuids = NULL;
// See if setting the properties was successful
if (SUCCEEDED(g_pRealTimeStylus->GetDesiredPacketDescription(&ulProperties, &pGuids)))
{
TRACE("The RealTimeStylus supports %d properties.\n", ulProperties);
// Display the values of the GUIDs in debug output
for (int i = 0; i < ulProperties; i++)
{
TRACE("GUID #%d == %d\n", i, pGuids[i]);
}
}
要求
最低受支持的客户端 | Windows XP Tablet PC Edition [仅限桌面应用] |
最低受支持的服务器 | 无受支持的版本 |
目标平台 | Windows |
标头 | rtscom.h |
DLL | RTSCom.dll |
请参阅
IRealTimeStylus::SetDesiredPacketDescription 方法
RealTimeStylus 类