dKingyoProgressDialog.dll









概要

Fluid StudiosのColorPicker.dllに触発されて
http://www.fluidstudios.com/?freeware
私もこのようなモジュールを作りたいと思い、そのようなモジュールとしてのニーズとして思い浮かんだのが Windows95系対応のIProgressDialogでした。なので作りました。

特徴





機能

モードレスダイアログ modeless dialog



Licence

dKingyoProgressDialog.dllはNYSLです。



ダウンロード





スクリーンショット / Screen shot






使い方 / How to use

以下のような感じでお使いください。
#include <windows.h>
#define DKINGYOPROGRESSDIALOG_NOT_IMPORT
#include "ProgressDialog.h"



int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
  HMODULE h = LoadLibrary("dKingyoProgressDialog.dll");
  DKC_PROGRESS_DIALOG_DO_MODELESS_F_TYPE func;
  DKC_PROGRESS_DIALOG_FREE_F_TYPE free_f;
  if(NULL==h){
    return -1;
  }
  func = (DKC_PROGRESS_DIALOG_DO_MODELESS_F_TYPE)GetProcAddress(h,"dkcProgressDialogDoModeless");
  if(NULL==func){
    return -2;
  }
  free_f = (DKC_PROGRESS_DIALOG_FREE_F_TYPE)GetProcAddress(h,"dkcProgressDialogFree");
  if(NULL==free_f){
    return -3;
  }

  //Loop
  {

    unsigned int percentage = 0;
    BOOL isCancel = FALSE;
    MSG msg;
    DWORD tt,t;
    HWND h = func(&percentage,NULL,&isCancel);
    if(NULL==h){
      return -4;
    }
    dkcProgressDialogShowAndUpdate(h,nShowCmd);
    tt = GetTickCount();
    while(dkcProgressDialogMessageProcess(&msg)){//processing loop
      t = GetTickCount();
      if(t - tt > 100){
        percentage += 1;
        tt = t;
      }
      if(percentage >= 100 || isCancel){
        break;
      }
    }
    if(FALSE==free_f(h)){//not found
      return -5;
    }

  }
  return 0;
}