2012-02-01 2 views
0

Windows는 표준 구성 요소 진행률 대화 상자를 제공합니다. 그것은 Windows XP에서 발명되었습니다. IProgressDialog 인터페이스를 사용하여 CoCreateInstance 호출을 통해 진행 대화 상자를 생성 할 수 있습니다. Windows Vista는 진행 대화 상자를위한 또 다른 (새로운) UI를 제공합니다. 새로운 UI를 얻으려면 IOperationsProgressDialog 인터페이스를 사용하여 진행 대화 상자를 만들어야합니다. 하나의 구성 요소 (CLSID_ProgressDialog)가 있습니다 : 인터페이스와 UI를 모두 지원합니다. IOperationsProgressDialog 인터페이스를 사용하는 것이 좋습니다.파일 작업 진행률 대화 상자

나는 네임 스페이스 확장을 개발했습니다. 드래그 & 드롭을 지원합니다. 내 NSE에서 데이터를 전송하는 시나리오를 사용

IShellFolder :: GetUIObjectOf를
  • -> IDataObject
  • IDataObject :: GetData의 -> FileDescriptor에는
  • 된 FileContents
  • 을 된 FileContents ->있는 IStream
  • 이있는 IStream :: 읽기 - > 전송할 데이터

FILEDESCRIPTOR는 NSE에 진행 UI (FD_PROGRESSUI)가 필요하다고보고합니다. 파일을 복사하는 동안 진행 대화 상자가 표시됩니다. 이 진행 대화 상자에는 IProgressDialog 인터페이스에 의해 제공되는 UI가 있습니다. IOperationsProgressDialog의 UI로 진행 대화 상자를 사용하려면 탐색기가 필요하지만 탐색기를 강제로 수행하는 방법을 모르겠습니다. 나는 IDataObject와 IStream만을 제공한다. NSE는 Windows 7 용으로 설계되었지만 진행률 대화 상자에는 이전 UI가 있습니다. 내 NSE에서 탐색기로 복사하는 동안 새 진행 대화 상자 UI를 얻으려면 어떻게해야합니까?

답변

0

제공된 객체가 IOperationsProgressDialog을 구현하는지 여부도 QueryInterface 일 수 있지만, E_NOINTERFACE을 처리 할 준비가되어 있어야합니다.

+0

FD_PROGRESSUI 옵션을보고합니다. 데이터가 전송되는 동안 대화 상자를 진행하고 싶습니다. 나는 진도 대화 상자를 직접 만들지 않는다. 탐험가는 그것을한다. 나는 전학 과정을 통제하지 않는다. 탐험가는 그것을한다. 탐색기가 부분별로 데이터를 읽고 진행률 대화 상자를 업데이트합니다. 내 NSE는 단지 데이터 소스 일뿐입니다. – user1182231