透明背景gif动态图:TPLockViewRefresh

来源:百度文库 编辑:九乡新闻网 时间:2024/07/14 18:01:33
typedef  void (*AFX_LOCKVIEWPOC)(BOOL)#define TPLOCKVIEW_RES          0
#define TPLOCKVIEW_BRD          1
#define TPLOCKVIEW_REFRESHFILE  2
#define TPLOCKVIEW_ENGINEBUSY   3class AFX_EXE_CLASS TPLockViewRefresh
{
public:
 static AFX_LOCKVIEWPOC LockUpdateView[6];
 static long LockRefer[6];
 BOOL    bLock;
 INT     IcurIndex;
public:
 
  TPLockViewRefresh(BOOL bLockInit,int iIndexInit);
 {
  bLock = FALSE;
  iIndexInit = -1;
  bLock = bLockInit;
  IcurIndex = iIndexInit;
  IF(bLock) LOCKView();
 }
 ~TPLockViewRefresh
 {
  if(bLock) UnlockView();
  bLock = FALSE;
  iIndexInit = -1;
 }
 static void SetLockFun(void (*f)(BOOL),int iIndexInit)
 {
  LockUpdateView[iIndexInit] = f;
  lLockRefer[iIndexInit]     = 0;
 }
 void LOCKView()
 {
  if(bLock) return;
  bLock = TRUE;
  if(LockRefer[IcurIndex] == 0 && LockUpdateView[IcurIndex])
   LockUpdateView[iIndex](FALSE);
  InterlockedIncrement(&lLockRefer[iIndex]);
 }
 void UnlockView()
 {
  f(!bLock) return;
  bLock = FALSE;  InterlockedDecrement(&lLockRefer[iIndex]);
  if(LockRefer[IcurIndex] == 0 && LockUpdateView[IcurIndex])
   LockUpdateView[iIndex](TRUE);
 }
};class AFX_EXE_CLASS TPResLockView:public TPLockViewRefresh
{
 TPResLockView(BOOL bLockInit = TRUE) :TPLockView(bLockInit,TPLOCKVIEW_RES)
 {
 }
}class AFX_EXE_CLASS TPBrdLockView:public TPLockViewRefresh
{
 TPBrdLockView(BOOL bLockInit = TRUE) :TPLockView(bLockInit,TPLOCKVIEW_BRD)
 {
 }
}class AFX_EXE_CLASS TPRefreshFileLockView:public TPLockViewRefresh
{
 TPRefreshFileLockView(BOOL bLockInit = TRUE) :TPLockView(bLockInit,TPLOCKVIEW_REFRESHFILE)
 {
 }
}class AFX_EXE_CLASS TPEnginBusyLockView:public TPLockViewRefresh
{
 TPEnginBusyLockView(BOOL bLockInit = TRUE) :TPLockView(bLockInit,TPLOCKVIEW_ENGINEBUSY)
 {
 }
}  TPResLockView::SetLockFun(TP_SetLockUpdateView,TPLOCKVIEW_RES);
TPResLockView::SetLockFun(TP_RefreshClipLock,TPLOCKVIEW_REFRESHFILE); LRESULT  TP_ClipImport(TPResClipInOutData &stuResInOutData)
{
 CTPResFunction::ResImportCmd(TP_RES_IMP_BEGIN);
  TPResLockView stuAutoStop; // XN00016052 LI HUI LI 2008-09-24 需要停止UpdateView,ClipImport之后再刷新
 return CTPResFunction::ClipImport(stuResInOutData);
}