CloseGestureInfoHandle 関数 (winuser.h)
ジェスチャ情報ハンドルに関連付けられているリソースを閉じます。
構文
BOOL CloseGestureInfoHandle(
HGESTUREINFO hGestureInfo
);
パラメーター
hGestureInfo
ジェスチャ情報ハンドル。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 拡張エラー情報を取得するには、 GetLastError 関数を使用します。
注釈
アプリケーションが WM_GESTURE メッセージを処理する場合は、この関数を使用してハンドルを閉じる必要があります。 これを行わないと、プロセス メモリ リークが発生する可能性があります。
メッセージが DefWindowProc に渡されるか、API 関数の PostMessage クラスまたは SendMessage クラスのいずれかを使用して転送された場合、ハンドルはメッセージと共に転送され、アプリケーションで閉じる必要はありません。
例
次のコードは、ジェスチャが処理された場合に GESTUREINFO ハンドルを閉じるハンドラーを示しています。
LRESULT DecodeGesture(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
// Create a structure to populate and retrieve the extra message info.
GESTUREINFO gi;
ZeroMemory(&gi, sizeof(GESTUREINFO));
gi.cbSize = sizeof(GESTUREINFO);
BOOL bResult = GetGestureInfo((HGESTUREINFO)lParam, &gi);
BOOL bHandled = FALSE;
if (bResult){
// now interpret the gesture
switch (gi.dwID){
case GID_ZOOM:
// Code for zooming goes here
bHandled = TRUE;
break;
case GID_PAN:
// Code for panning goes here
bHandled = TRUE;
break;
case GID_ROTATE:
// Code for rotation goes here
bHandled = TRUE;
break;
case GID_TWOFINGERTAP:
// Code for two-finger tap goes here
bHandled = TRUE;
break;
case GID_PRESSANDTAP:
// Code for roll over goes here
bHandled = TRUE;
break;
default:
// A gesture was not recognized
break;
}
}else{
DWORD dwErr = GetLastError();
if (dwErr > 0){
//MessageBoxW(hWnd, L"Error!", L"Could not retrieve a GESTUREINFO structure.", MB_OK);
}
}
if (bHandled){
return 0;
}else{
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |
API セット | ext-ms-win-ntuser-misc-l1-2-0 (Windows 8.1で導入) |