정보: 전화 Shell 함수 및 다중 스레드 아파트에서 인터페이스

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

287087
요약
호출하거나 다중 스레드 아파트 같이 초기화되지 않은 스레드에서 셸 함수 또는 셸 인터페이스를 액세스할 때 함수나 인터페이스 있습니다 장애가 해당 기능이 또는 완전히 실패할.
추가 정보
CoInitializeEx(COINIT_MULTITHREADED) 호출하면을 호출 스레드에서 만든 개체 호출하여를 모든 스레드에서 실행할 수 있습니다. 아파트 스레딩 다중 스레드 아파트 모델을 사용하는 개체를 액세스할 때 COM 개체에 대한 액세스를 동기화합니다. 이 동기화 발생할 순서로 COM 개체에 호출을 마샬링하는 합니다. 셸은 현재 필요한 정보를 제공하지 않기 때문에 형식 라이브러리 또는 프록시/스텁 통해 마샬링될 수, 해당 개체에 대한 코드를 에서 다중 스레드 아파트 실패 셸 개체에 액세스하려고 시도합니다.

어떻게 CoInitializeEx(COINIT_MULTITHREADED) 호출을 셸 개체에 의존하는 함수에 영향을 줄 수 있는 예는 다음과 같습니다.

GetOpenFileName/GetSaveFileName
사용자가 열기다른 이름으로 저장 대화 상자를 통해 "내 문서" 와 같은 네임스페이스 확장 폴더를 이동할 수 있습니다. 그러나 브라우저에서 IShellFolder 같은 필수 인터페이스를 만들 수 없기 때문에 위해 이러한 폴더는 탐색할 수 없습니다.
ShellExecute/ShellExecuteEx
ShellExecute 후크는 IShellExecuteHook 인터페이스를 구현하여 ShellExecute/ShellExecuteEx의 기능을 확장하는 쓸 수 있습니다. ShellExecute/ShellExecuteEx 호출될 때 등록된 ShellExecute 후크는 로드할 수 없습니다.
두 이 예제를, CoCreateInstance, IUnknown::QueryInterface, 셸 개체에 대한 인터페이스 포인터를 얻는 등의 시도하는 구성 일반적으로 다중 스레드 아파트를 에서 호출할 때 E_NOINTERFACE 오류와 함께 실패합니다. 그 이유는 위에서 언급한 대로 요청되는 개체에 대한 형식 정보 또는 프록시/스텁 코드가 것입니다.
참조
"프로세스, 스레드 및 아파트," 에서 COM 기본 플랫폼 SDK 설명서:

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 287087 - 마지막 검토: 07/11/2005 19:05:49 - 수정: 1.4

Microsoft Platform Software Development Kit-January 2000 Edition

  • kbmt kbinfo kbpending kbshellgrp KB287087 KbMtko
피드백