다음을 통해 공유


TF_GetThreadMgr 함수(msctf.h)

TF_GetThreadMgr 함수는 호출 스레드 내에서 이전에 만든 스레드 관리자 개체의 복사본을 가져옵니다.

구문

HRESULT TF_GetThreadMgr(
  [out] ITfThreadMgr **pptim
);

매개 변수

[out] pptim

스레드 관리자 개체를 수신하는 ITfThreadMgr 인터페이스 포인터에 대한 포인터입니다. 호출 스레드 내에 스레드 관리자가 만들어지지 않으면 NULL 이 수신됩니다.

반환 값

의미
S_OK 함수가 성공했습니다. 호출 스레드 내에 스레드 관리자가 만들어지지 않으면 pptimNULL이 됩니다.
E_FAIL 지정되지 않은 오류가 발생했습니다.

설명

호출 스레드 내에 스레드 관리자가 만들어지지 않으면 이 함수는 pptimNULL 로 설정하고 S_OK 반환합니다. 따라서 pptim을 사용하기 전에 함수가 성공했고 pptimNULL이 아닌지 확인해야 합니다.

예제

이 함수를 정의하는 가져오기 라이브러리는 사용할 수 없으므로 LoadLibraryGetProcAddress를 사용하여 이 함수에 대한 포인터를 수동으로 가져와야 합니다. 다음 코드 예제에서는 이 작업을 수행하는 방법을 보여 줍니다.

다음 예제에서는 이전에 만든 스레드 관리자 개체의 복사본을 가져오려고 하는 함수를 보여 줍니다. 호출 스레드 내에 스레드 관리자 개체가 없으면 함수가 하나를 만듭니다.

참고  

LoadLibrary를 잘못 사용하면 잘못된 DLL을 로드하여 애플리케이션의 보안을 손상할 수 있습니다. 다양한 버전의 Windows에서 DLL을 올바르게 로드하는 방법에 대한 자세한 내용은 LoadLibrary 설명서를 참조하세요.

 

typedef HRESULT (WINAPI *PTF_GETTHREADMGR)(ITfThreadMgr **pptim);

HRESULT GetThreadMgr(ITfThreadMgr **pptm)
{
    HRESULT hr = E_FAIL;
    HMODULE hMSCTF = LoadLibrary(TEXT("msctf.dll"));
    ITfThreadMgr *pThreadMgr = NULL;

    if(hMSCTF == NULL)
    {
        //Error loading module -- fail as securely as possible 
    }

    else
    {
        PTF_GETTHREADMGR pfnGetThreadMgr;
    
        pfnGetThreadMgr = (PTF_GETTHREADMGR)GetProcAddress(hMSCTF, "TF_GetThreadMgr");

        if(pfnGetThreadMgr)
        {
            hr = (*pfnGetThreadMgr)(&pThreadMgr);
        }
        
        FreeLibrary(hMSCTF);
    }

    //If no object could be obtained, try to create one. 
    if(NULL == pThreadMgr)
    {
        //CoInitialize or OleInitialize must already have been called. 
        hr = CoCreateInstance(  CLSID_TF_ThreadMgr, 
                                NULL, 
                                CLSCTX_INPROC_SERVER, 
                                IID_ITfThreadMgr, 
                                (void**)&pThreadMgr);
    }

    *pptm = pThreadMgr;

    return hr;
}

요구 사항

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

추가 정보

GetProcAddress

ITfThreadMgr

LoadLibrary