IStylusPlugin::CustomStylusDataAdded 方法 (rtscom.h)

通知实现插件自定义触笔数据可用。

语法

HRESULT CustomStylusDataAdded(
  [in] IRealTimeStylus *piRtsSrc,
  [in] const GUID      *pGuidId,
  [in] ULONG           cbData,
  [in] const BYTE      *pbData
);

参数

[in] piRtsSrc

RealTimeStylus 类 (发送通知的 RTS) 对象。

[in] pGuidId

自定义数据的全局唯一标识符 (GUID) 。

[in] cbData

缓冲区 pbData 的大小(以字符为单位)。 有效值为 0 到 0x7FFF(含)。

[in] pbData

指向包含 RTS 对象发送的自定义数据的缓冲区的指针。

返回值

有关返回值的说明,请参阅 RealTimeStylus 类和接口

注解

处理 IStylusPlugin::CustomStylusDataAdded 方法 时调用此方法。 自定义数据在 pbData 成员中传递, pGuidId 成员中的 GUID 用于传递类型信息。 此类不能被继承。

示例

以下 C++ 代码示例实现 IStylusPlugin::CustomStylusDataAdded 方法 方法,该方法处理来自手势事件的数据, m_pStatusControl并将静态文本控件 设置为手势数据的字符串表示形式。

STDMETHODIMP CGestureHandler::CustomStylusDataAdded( 
            /* [in] */ IRealTimeStylus *piRtsSrc,
            /* [in] */ const GUID *pGuidId,
            /* [in] */ ULONG cbData,
            /* [in] */ const BYTE *pbData)
{
	// Did we get passed gesture data?
	if (*pGuidId == GUID_GESTURE_DATA)
	{
		// Another way to check for gestures is to see if the data
		// is the right size and actually points to something
		if ((cbData == sizeof(GESTURE_DATA)) && (pbData != NULL))
		{
			// Access the data coming as a GESTURE_DATA structure
			GESTURE_DATA* pGD = (GESTURE_DATA*)pbData;

			CString strStatus;
			CString strGestureId;
			
			// Helper function that maps the gesture ID to a string value
			SetGestureString(pGD->gestureId, &strGestureId);

			strStatus.Format(L"Gesture=%s\tConfidence=%d\tStrokes=%d", strGestureId, pGD->recoConfidence, pGD->strokeCount);
			m_pStatusControl->SetWindowTextW(strStatus);
		}
		else
		{
			m_pStatusControl->SetWindowTextW(L"Not gesture data.");
		}
	}
	else
	{
		m_pStatusControl->SetWindowTextW(L"Not gesture data.");
	}

	return S_OK;
}

要求

要求
最低受支持的客户端 Windows XP Tablet PC Edition [仅限桌面应用]
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 rtscom.h
DLL RTSCom.dll

另请参阅

GestureRecognizer 类

IGestureRecognizer 接口

IStylusAsyncPlugin

IStylusPlugin 接口

IStylusSyncPlugin