www.pudn.com > 1.rar > I2ControlSet.cpp


// I2ControlSet.cpp: implementation of the CI2WBControlSet class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "resource.h" 
#define INITGUID 
#include  
 
#include "iaspwb.h" 
 
extern HINSTANCE g_hinstance; 
 
CI2WBControlSet::CI2WBControlSet() 
{ 
} 
 
CI2WBControlSet::~CI2WBControlSet() 
{ 
 
} 
 
VOID CI2WBControlSet::enumControlInfo(I2List& m_infolist) 
{ 
if(!g_hinstance) 
  g_hinstance=GetModuleHandle("iaspwb.dll"); 
 
WB32CONTROLINFO wbci; 
wbci.cid=Draw_Pen; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_PEN)); 
if(wbci.hicon==NULL) 
{ 
  d::m("load icon failed"); 
  throw new I2BaseException(I2E_NOTSUPPORT); 
} 
//wbci.hicon=(HICON)LoadImage(g_hinstance,MAKEINTRESOURCE(IDI_C_PEN),IMAGE_ICON,32,32,TRUE); 
wbci.hcursor=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_PEN)); 
if(wbci.hcursor==NULL) 
{ 
  d::m("load cursor failed"); 
  throw new I2BaseException(I2E_NOTSUPPORT); 
} 
LoadString(g_hinstance,IDS_NAME_PEN,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
 
wbci.cid=Draw_Line; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_LINE)); 
LoadString(g_hinstance,IDS_NAME_LINE,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
 
wbci.cid=Draw_HRect; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_HRECT)); 
LoadString(g_hinstance,IDS_NAME_HRECT,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
 
wbci.cid=Draw_Rect; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_RECT)); 
LoadString(g_hinstance,IDS_NAME_RECT,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
 
wbci.cid=Draw_HCirc; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_HCIRC)); 
LoadString(g_hinstance,IDS_NAME_HCIRC,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
 
wbci.cid=Draw_Circ; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_CIRC)); 
LoadString(g_hinstance,IDS_NAME_CIRC,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
 
wbci.cid=Draw_HPoly; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_HPOLY)); 
LoadString(g_hinstance,IDS_NAME_HPOLY,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
 
wbci.cid=Draw_Poly; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_POLY)); 
LoadString(g_hinstance,IDS_NAME_POLY,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_PEN,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
 
wbci.cid=Draw_Text; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_TEXT)); 
LoadString(g_hinstance,IDS_NAME_TEXT,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_TEXT,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
 
/*wbci.cid=Draw_Image; 
wbci.hicon=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_C_TEXT)); 
LoadString(g_hinstance,IDS_NAME_TEXT,wbci.name,MAX_CONTROLNAME); 
LoadString(g_hinstance,IDS_DESC_TEXT,wbci.description,MAX_CONTROLNAME); 
wbci.type=0; 
m_infolist.append(wbci); 
*/ 
m_infopos=0; 
} 
 
VOID CI2WBControlSet::createControl(INT cid,VOID* pwb,VOID** ppawc,HWND hwnd) 
{ 
if(!pwb||!ppawc) 
   throw new I2BaseException(I2E_INVALIDPARAMETER); 
*ppawc=(VOID*)new CI2WBControl(cid,pwb,hwnd); 
 
if(!*ppawc) 
   throw new I2BaseException(I2E_OUTOFMEMORY); 
} 
 
 
VOID CI2WBControlSet::getControlSetID(GUID* Value) 
{ 
*Value=CSID_Draw; 
} 
 
VOID CI2WBControlSet::getControlCursor(INT cid,HCURSOR* pcur) 
{ 
switch(cid) 
{ 
case 0: 
   *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_PEN)); 
   break; 
case 1: 
   *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_LINE)); 
   break; 
case 2: 
   *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_RECT)); 
   break; 
case 3: 
   *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_RECT)); 
   break; 
case 4: 
   *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_CIRC)); 
   break; 
case 5: 
   *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_CIRC)); 
   break; 
case 6: 
   *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_POLY)); 
   break; 
case 7: 
   *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_POLY)); 
   break; 
case 8: 
   *pcur=LoadCursor(g_hinstance,MAKEINTRESOURCE(IDC_C_TEXT)); 
   break; 
case 9: 
	break; 
default: 
   throw new I2BaseException(I2E_INVALIDPARAMETER); 
   break; 
} 
}