본문 바로가기

망각/Windows Shell

OLE Drag and Drop 문제

SodExplorer 테스트중 최근에 발견했다.

드래그앤드롭으로 파일 복사시에 SodExplorer가 드래그한 소스창으로 쓰이면
(즉, SodExplorer에서 파일을 끌어 다른 프로그램으로 복사할 경우)
복사 다이얼로그 창이 닫히기 전까지 SodExplorer창이 블럭되어, 입력을 받지 못했다.
드롭한 타겟창일 경우에는 문제가 발생하지 않았다.

헌데, 이런 상황은 SodExplorer band의 경우에 달랐다.
윈도우 탐색기와, 작업표시줄 툴바의 경우, 소스창으로 쓰일 경우에도 블럭되지 않았고
인터넷익스플로어의 경우에는 역시 블럭되었다.

차이점은 DLL이 explorer.exe에 로드되어 실행되느냐 아니냐에 따른 것으로 판단된다.
IE의 경우 iexplorer.exe 프로세스가 따로 실행되고,
탐색기와 작업표시줄은 explorer.exe 기존 프로세스에서 실행된다.
물론 SodExplorer의 경우는 SodExplorer.exe 독립프로세스로 실행되고.

그렇다면 explorer.exe는 어떻게 소스창이 블럭되지 않을 수 있을까?
우선, OLD Drag and Drop에 대해서 더 정확히 알아보고 관련정보도 검색해보자.