CoIncrementMTAUsage 함수(combaseapi.h)
MTA 스레드가 실행되고 있지 않은 경우 MTA 지원을 활성으로 유지합니다.
구문
HRESULT CoIncrementMTAUsage(
[out] CO_MTA_USAGE_COOKIE *pCookie
);
매개 변수
[out] pCookie
CoDecrementMTAUsage 함수에 대한 쿠키를 수신하는 PVOID 변수의 주소이거나 호출이 실패할 경우 NULL입니다.
반환 값
이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
CoIncrementMTAUsage 함수를 사용하면 클라이언트가 MTA 작업자를 만들고 프로세스를 종료하기 전에 완료될 때까지 기다릴 수 있습니다.
CoIncrementMTAUsage 함수는 시스템이 MTA 지원과 관련된 리소스를 해제하지 않도록 합니다. MTA 스레드 수가 0으로 가는 경우에도 마찬가지입니다.
성공하면 CoDecrementMTAUsage 를 한 번만 호출합니다. 실패 시 CoDecrementMTAUsage 함수를 호출하지 마세요.
프로세스 종료 중 또는 dllmain 내부에서 CoIncrementMTAUsage 를 호출하지 마세요. 호출 전에 CoIncrementMTAUsage 를 호출하여 종료 프로세스를 시작할 수 있습니다.
이전에 CoIncrementMTAUsage에서 반환된 쿠키가 CoDecrementMTAUsage에 전달되는 한 한 스레드에서 CoIncrementMTAUsage를 호출하고 다른 스레드에서 CoDecrementMTAUsage를 호출할 수 있습니다.
CoIncrementMTAUsage 는 MTA가 아직 없는 경우 MTA를 만듭니다. 현재 스레드가 아직 아파트에 없는 경우 CoIncrementMTAUsage는 현재 스레드를 MTA에 넣습니다.
다음과 같은 경우 CoIncrementMTAUsage 를 사용할 수 있습니다.
- 모든 작업자 스레드가 유휴 상태인 경우에도 서버가 MTA를 활성 상태로 유지하려고 합니다.
- API 구현을 수행하려면 COM을 초기화해야 하지만 현재 스레드가 이미 아파트에 있는지 여부에 대한 정보가 없으며 특정 아파트로 이동하는 데 현재 스레드가 필요하지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | combaseapi.h |
라이브러리 | Ole32.lib |
DLL | Ole32.dll |