透明背景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);
}
#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);
}