IOleInPlaceFrame::TranslateAccelerator 메서드(oleidl.h)
개체가 활성 상태인 동안 컨테이너의 프레임에 대한 액셀러레이터 키 입력을 변환합니다.
구문
HRESULT TranslateAccelerator(
[in] LPMSG lpmsg,
[in] WORD wID
);
매개 변수
[in] lpmsg
키 입력 메시지를 포함하는 MSG 구조체에 대한 포인터입니다.
[in] wID
컨테이너 제공 가속기 테이블의 키 입력에 해당하는 명령 식별자 값입니다. 컨테이너는 다시 번역하는 대신 이 값을 사용해야 합니다.
반환 값
이 메서드는 성공에 대한 S_OK 반환합니다. 가능한 다른 반환 값은 다음과 같습니다.
반환 코드 | 설명 |
---|---|
|
키 입력이 사용되지 않았습니다. |
|
지정한 포인터가 잘못되었습니다. |
|
예기치 않은 오류가 발생했습니다. |
설명
발신자에 대한 참고 사항
IOleInPlaceFrame::TranslateAccelerator 메서드는 컨테이너(프레임)를 위한 키 입력 가속기가 수신될 때 OleTranslateAccelerator에 의해 간접적으로 호출됩니다.구현자에 대한 참고 사항
컨테이너 애플리케이션은 일반적인 가속기 처리를 수행하거나 wID 를 직접 사용한 다음, 키 입력 가속기가 처리되었는지 여부를 나타내는 를 반환해야 합니다. 컨테이너가 MDI 애플리케이션이고 TranslateAccelerator 함수가 실패하는 경우 컨테이너는 일반적인 메시지 처리와 마찬가지로 TranslateMDISysAccel 함수를 호출할 수 있습니다.현재 위치 개체는 가속기 메시지를 번역할 때 첫 번째 기회를 주어야 합니다. 그러나 DLL 개체 애플리케이션에서 구현된 개체에는 자체 메시지 펌프가 없으므로 컨테이너의 메시지 큐에서 메시지를 받습니다. 개체가 메시지를 처음 번역할 수 있도록 하려면 컨테이너가 자체 가속기 번역을 수행하기 전에 항상 IOleInPlaceFrame::TranslateAccelerator 를 호출해야 합니다. 반대로, 실행 가능한 개체 애플리케이션은 TranslateAccelerator를 호출한 후 두 번역 함수가 모두 실패하는 경우에만 TranslateMessage 및 DispatchMessage를 호출한 후 OleTranslateAccelerator를 호출해야 합니다.
컨테이너가 자체 가속기 키 입력 변환을 수행하는 개체 애플리케이션에서 제대로 작동할 수 있도록 컨테이너에 대한 가속기 테이블을 정의해야 합니다. 테이블은 다음과 같이 정의해야 합니다.
"char", wID, VIRTKEY, CONTROL
키보드 가속기를 설명하는 가장 일반적인 방법입니다. 이렇게 하지 않으면 현재 위치 세션 중에 키 입력이 손실되거나 잘못된 개체로 전송될 수 있습니다.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | oleidl.h |