다음을 통해 공유


IProgressDialog 인터페이스(shlobj_core.h)

애플리케이션에서 진행률 대화 상자를 표시할 수 있는 옵션을 제공하는 메서드를 노출합니다. 이 인터페이스는 진행률 대화 상자 개체(CLSID_ProgressDialog)에서 내보냅니다. 이 개체는 작업 진행 방법을 사용자에게 표시하는 일반적인 방법입니다. 일반적으로 많은 수의 파일을 삭제, 업로드, 복사, 이동 또는 다운로드할 때 사용됩니다.

상속

IProgressDialog 인터페이스는 IUnknown 인터페이스에서 상속됩니다. IProgressDialog 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IProgressDialog 인터페이스에는 이러한 메서드가 있습니다.

 
IProgressDialog::HasUserCancelled

사용자가 작업을 취소했는지 여부를 확인합니다.
IProgressDialog::SetAnimation

대화 상자에서 실행되는 Audio-Video AVI(인터리브) 클립을 지정합니다.
IProgressDialog::SetCancelMsg

사용자가 작업을 취소하는 경우 표시할 메시지를 설정합니다.
IProgressDialog::SetLine

진행률 대화 상자에 메시지를 표시합니다.
IProgressDialog::SetProgress

진행률 대화 상자를 작업의 현재 상태로 업데이트. (IProgressDialog.SetProgress)
IProgressDialog::SetProgress64

진행률 대화 상자를 작업의 현재 상태로 업데이트. (IProgressDialog.SetProgress64)
IProgressDialog::SetTitle

진행률 대화 상자의 제목을 설정합니다.
IProgressDialog::StartProgressDialog

진행률 대화 상자를 시작합니다.
IProgressDialog::StopProgressDialog

진행률 대화 상자를 중지하고 화면에서 제거합니다.
IProgressDialog::Timer

진행률 대화 상자 타이머를 0으로 다시 설정합니다.

설명

진행률 대화 상자 개체는 모덜리스 대화 상자를 만들고 클라이언트가 제목, 애니메이션, 텍스트 줄 및 진행률 표시줄을 설정할 수 있도록 합니다. 그런 다음 개체는 백그라운드 스레드에서 업데이트를 처리하고 사용자가 작업을 취소할 수 있도록 합니다. 필요에 따라 작업이 완료될 때까지 남은 시간을 예측하고 정보를 텍스트 줄로 표시합니다.

애플리케이션은 일반적으로 이 인터페이스를 구현하지 않습니다. 애플리케이션에서 사용하기 위해 진행률 대화 상자 개체에서 내보냅니다.

애플리케이션에서 진행률 대화 상자를 표시해야 하는 경우 이 인터페이스를 사용합니다. 개체를 초기화하려면 다음을 수행합니다.

  1. CoCreateInstance를 사용하여 프로세스 내 진행률 대화 상자 개체(CLSID_ProgressDialog)를 만듭니다. IProgressDialog 인터페이스(IID_IProgressDialog)에 대한 포인터를 요청합니다.
  2. IProgressDialog::SetTitle을 호출하여 대화 상자 제목을 지정합니다.
  3. IProgressDialog::SetAnimation을 호출하여 작업이 진행되는 동안 재생할 AVI 클립을 지정합니다.
  4. IProgressDialog::SetCancelMsg를 호출하여 사용자가 작업을 취소할 경우 표시될 메시지를 지정합니다.
작업의 진행률을 표시하려면 다음을 수행합니다.
  1. IProgressDialog::StartProgressDialog를 호출하여 대화 상자를 표시합니다.
  2. 작업에서 수행할 총 작업량에 숫자 값을 할당합니다. 작업의 진행률을 편리하게 정의할 수 있는 숫자를 사용합니다. 예를 들어 완료된 백분율을 기준으로 작업의 진행률을 지정하려면 이 값을 100으로 설정합니다.
  3. IProgressDialog::Timer를 호출하여 타이머를 다시 설정합니다. 이 메서드는 진행률 대화 상자 개체가 작업에 남아 있는 시간을 예측하는 데 사용하는 시작점을 설정합니다. 이 메서드를 호출하지 않으면 시작점은 StartProgressDialog에 대한 호출입니다.
  4. 작업이 진행됨에 따라 IProgressDialog::SetProgress 를 주기적으로 호출하여 완료된 작업의 양에 대한 대화 상자를 업데이트합니다. 진행률 대화 상자 개체는 진행률 표시줄을 업데이트하고 남은 시간의 예상 시간을 다시 계산합니다. 편리한 진행률의 숫자 측정값을 사용할 수 있습니다. 그러나 4GB보다 큰 값을 사용하려면 IProgressDialog::SetProgress 대신 IProgressDialog::SetProgress64를 호출해야 합니다.
  5. 사용자가 취소 단추를 클릭하여 작업을 취소하는 경우 애플리케이션에서 알림을 받지 못합니다. 작업이 진행됨에 따라 IProgressDialog::HasUserCancelled 를 주기적으로 호출하여 사용자가 취소 단추를 클릭했는지 확인합니다. 애플리케이션은 일반적으로 IProgressDialog::SetProgress 또는 IProgressDialog::SetProgress64를 호출할 때마다 이 메서드를 호출합니다.
  6. 대화 상자에는 세 줄의 텍스트가 표시됩니다. 애플리케이션은 IProgressDialog::SetLine 을 주기적으로 호출하여 이러한 줄 중 하나에 메시지를 표시할 수 있습니다. 이 메서드는 일반적으로 작업의 현재 상태 대한 정보를 제공하는 데 사용됩니다. 일반적인 메시지는 다음과 같습니다. "현재 항목 XXX를 처리 중입니다...". 메시지는 일반적으로 줄 1과 2에 표시됩니다. IProgressDialog::StartProgressDialogdwFlags 매개 변수에서 PROGDLG_AUTOTIME 플래그를 설정하여 진행률 대화 상자 개체에 남은 시간을 예측하도록 지시하지 않은 경우에만 3줄에 메시지를 표시할 수 있습니다. 이 경우 세 번째 텍스트 줄은 예상 시간을 표시하는 데 사용됩니다.
작업이 완료되면 다음을 수행합니다.
  1. IProgressDialog::StopProgressDialog를 호출하여 대화 상자를 닫습니다.
  2. 진행률 대화 상자 개체를 놓습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional, Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shlobj_core.h