IContextNode::GetStrokeCount 메서드
IContextNode 개체와 연결된 스트로크 수를 가져옵니다.
구문
HRESULT GetStrokeCount(
[out] ULONG *pulStrokeCount
);
매개 변수
-
pulStrokeCount [out]
-
IContextNode 개체와 연결된 스트로크 수입니다.
반환 값
반환 값에 대한 설명은 클래스 및 인터페이스 - 잉크 분석을 참조하세요.
설명
잉크 리프 컨텍스트 노드에만 연결된 스트로크 데이터가 있습니다( IContextNode::GetType 참조).
예제
이 예제에서는 IContextNode를 검사하는 메서드 ExploreContextNode
를 보여 줍니다. 메서드는 다음을 수행합니다.
- 컨텍스트 노드의 형식을 가져옵니다.
- 컨텍스트 노드가 분류되지 않은 잉크, 분석 힌트 또는 사용자 지정 인식기 노드인 경우 도우미 메서드를 호출하여 노드 형식의 특정 속성을 검사합니다.
- 노드에 하위 노드가 있는 경우 자체 호출하여 각 하위 노드를 검사합니다.
- 노드가 잉크 리프 노드인 경우 도우미 메서드를 호출하여 노드의 스트로크 데이터를 검사합니다.
HRESULT CMyClass::ExploreContextNode(
IContextNode *pContextNode)
{
// Check for certain types of context nodes.
GUID ContextNodeType;
HRESULT hr = pContextNode->GetType(&ContextNodeType);
if (SUCCEEDED(hr))
{
if (IsEqualGUID(GUID_CNT_UNCLASSIFIEDINK, ContextNodeType))
{
// Call a helper method that explores unclassified ink nodes.
hr = this->ExploreUnclassifiedInkNode(pContextNode);
}
else if (IsEqualGUID(GUID_CNT_ANALYSISHINT, ContextNodeType))
{
// Call a helper method that explores analysis hint nodes.
hr = this->ExploreAnalysisHintNode(pContextNode);
}
else if (IsEqualGUID(GUID_CNT_CUSTOMRECOGNIZER, ContextNodeType))
{
// Call a helper method that explores custom recognizer nodes.
hr = this->ExploreCustomRecognizerNode(pContextNode);
}
if (SUCCEEDED(hr))
{
// Check if this node is a branch or a leaf node.
IContextNodes *pSubNodes = NULL;
hr = pContextNode->GetSubNodes(&pSubNodes);
if (SUCCEEDED(hr))
{
ULONG ulSubNodeCount;
hr = pSubNodes->GetCount(&ulSubNodeCount);
if (SUCCEEDED(hr))
{
if (ulSubNodeCount > 0)
{
// This node has child nodes; explore each child node.
IContextNode *pSubNode = NULL;
for (ULONG index=0; index<ulSubNodeCount; index++)
{
hr = pSubNodes->GetContextNode(index, &pSubNode);
if (SUCCEEDED(hr))
{
// Recursive call to explore the child node of this
// context node.
hr = this->ExploreContextNode(pSubNode);
}
// Release this reference to the child context node.
if (pSubNode != NULL)
{
pSubNode->Release();
pSubNode = NULL;
}
if (FAILED(hr))
{
break;
}
}
}
else
{
// This is a leaf node. Check if it contains stroke data.
ULONG ulStrokeCount;
hr = pContextNode->GetStrokeCount(&ulStrokeCount);
if (SUCCEEDED(hr))
{
if (ulStrokeCount > 0)
{
// This node is an ink leaf node; call helper
// method that explores available stroke data.
hr = this->ExploreNodeStrokeData(pContextNode);
}
}
}
}
}
// Release this reference to the subnodes collection.
if (pSubNodes != NULL)
{
pSubNodes->Release();
pSubNodes = NULL;
}
}
}
return hr;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows XP 태블릿 PC 버전 [데스크톱 앱만 해당] |
지원되는 최소 서버 |
지원되는 버전 없음 |
헤더 |
|
DLL |
|