다음을 통해 공유


ITfContext::RequestEditSession 메서드(msctf.h)

문서 텍스트 및 속성에 대한 액세스 권한을 얻습니다.

구문

HRESULT RequestEditSession(
  [in]  TfClientId     tid,
  [in]  ITfEditSession *pes,
  [in]  DWORD          dwFlags,
  [out] HRESULT        *phrSession
);

매개 변수

[in] tid

편집 세션을 설정할 클라이언트를 식별하는 TfClientId 값을 포함합니다.

[in] pes

편집 세션을 수행하기 위해 호출 된 ITfEditSession 인터페이스에 대한 포인터입니다.

[in] dwFlags

다음 값 중 하나 이상을 포함합니다.

의미
TF_ES_ASYNCDONTCARE
편집 세션은 TSF 관리자의 재량에 따라 동기적으로 또는 비동기적으로 발생할 수 있습니다. 관리자는 성능 향상을 위해 동기 편집 세션을 예약하려고 시도합니다. 이 값은 TF_ES_ASYNC 또는 TF_ES_SYNC 값과 결합할 수 없습니다.
TF_ES_SYNC
편집 세션은 동기적이어야 합니다. 그렇지 않으면 요청이 실패합니다(TF_E_SYNCHRONOUS). 이 플래그는 성공할 것으로 예상되는 문서화된 상황(예: 키 입력 처리)에서만 사용해야 합니다. 그렇지 않으면 호출이 실패할 수 있습니다. 이 값은 TF_ES_ASYNCDONTCARE 또는 TF_ES_ASYNC 값과 결합할 수 없습니다.
TF_ES_READ
컨텍스트에 대한 읽기 전용 액세스를 요청합니다.
TF_ES_READWRITE
컨텍스트에 대한 읽기/쓰기 액세스를 요청합니다.
TF_ES_ASYNC
편집 세션은 비동기식이어야 합니다. 그렇지 않으면 요청이 실패합니다. 이 값은 TF_ES_ASYNCDONTCARE 또는 TF_ES_SYNC 값과 결합할 수 없습니다.

[out] phrSession

세션 편집 요청의 결과를 수신하는 HRESULT 값의 주소입니다. 받은 값은 요청된 편집 세션의 유형에 따라 달라집니다.

  • 비동기 편집 세션이 요청되고 설정할 수 있는 경우 는 TF_S_ASYNC 받습니다.
  • 동기 편집 세션이 요청되어 설정할 수 없는 경우 는 TF_E_SYNCHRONOUS 받습니다.
  • TF_ES_READWRITE 플래그를 지정하고 문서가 읽기 전용인 경우 는 TS_E_READONLY 받습니다.
  • 동기 편집 세션이 설정된 경우 는 ITfEditSession::D oEditSession의 반환 값을 받습니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

Description
S_OK
메서드를 성공적으로 수행했습니다. phrSession 은 메서드에 대한 더 많은 결과 데이터를 포함합니다.
TF_E_LOCKED
호출자는 이미 잠금을 보유하고 있는 다른 텍스트 서비스의 컨텍스트 내에 있습니다.
TF_E_DISCONNECTED
컨텍스트가 문서 스택에 없습니다.
E_INVALIDARG
하나 이상의 매개 변수가 잘못되었습니다.
E_OUTOFMEMORY
메모리 할당 오류가 발생했습니다.

설명

보류 중인 비동기 편집 세션은 받은 순서대로 처리됩니다. 동기 편집 세션은 보류 중인 비동기 편집 세션 전에 처리됩니다.

읽기 전용 세션 내에서 쓰기 액세스 세션이 요청되지 않은 경우 텍스트 서비스는 기존 편집 세션의 컨텍스트 내에서 편집 세션을 요청할 수 있습니다. 다른 텍스트 서비스에서 설정한 편집 세션의 컨텍스트 내에서 이 메서드에 대한 호출은 TF_E_LOCKED 함께 실패합니다.

다음 알림 중 하나를 처리할 때 동기 읽기/쓰기 요청이 수행되면 실패합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 msctf.h
DLL Msctf.dll
재배포 가능 파일 Windows 2000 Professional의 TSF 1.0

참고 항목

ITfContext 인터페이스, ITfEditSession 인터페이스, ITfStatusSink::OnStatusChange, ITfTextEditSink::OnEndEdit, ITfTextLayoutSink::OnLayoutChange