OSDN Git Service

・ MBCS->Unicode対応
[seraphyscrtools/SeraphyScriptTools.git] / Draw.cpp
index 83762e3..6357d6e 100644 (file)
--- a/Draw.cpp
+++ b/Draw.cpp
@@ -11,14 +11,14 @@ void CCanvas::FinalRelease()
 {
        ATLTRACE("CCanvas::FinalRelease\r\n");
        // \83v\83\8a\83\93\83^\83f\83o\83C\83X\82Ì\89ð\95ú
-       if(m_pPrinterDeviceMode){
+       if (m_pPrinterDeviceMode) {
                delete m_pPrinterDeviceMode;
                m_pPrinterDeviceMode = NULL;
        }
        // \83\8c\83C\83\84\81[\83I\83u\83W\83F\83N\83g\82Ì\89ð\95ú
        int i;
-       for(i=0 ; i<MAXLAYER ; i++){
-               if(m_pComLayer[i] != NULL){
+       for (i = 0; i < MAXLAYER; i++) {
+               if (m_pComLayer[i] != NULL) {
                        m_pComLayer[i]->Release();
                        m_pComLayer[i] = NULL;
                }
@@ -27,13 +27,12 @@ void CCanvas::FinalRelease()
 
 STDMETHODIMP CCanvas::InterfaceSupportsErrorInfo(REFIID riid)
 {
-       static const IID* arr[] = 
+       static const IID* arr[] =
        {
                &IID_ICanvas
        };
-       for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
-       {
-               if (IsEqualGUID(*arr[i],riid))
+       for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
+               if (IsEqualGUID(*arr[i], riid))
                        return S_OK;
        }
        return S_FALSE;
@@ -44,17 +43,17 @@ STDMETHODIMP CCanvas::get_Layer(VARIANT varLay, VARIANT *pVal)
        // \83\8c\83C\83\84\81[\83I\83u\83W\83F\83N\83g\82Ì\8eó\82¯\93n\82µ
        CComVariant vLay;
        int nLayer = 0;
-       if(vLay.ChangeType(VT_I2,&varLay) == S_OK){
+       if (SUCCEEDED(vLay.ChangeType(VT_I2, &varLay))) {
                nLayer = vLay.iVal;
        }
-       if(!(nLayer >= 0 && nLayer < MAXLAYER) || m_pComLayer[nLayer] == NULL){
-               ErrorInfo(IDS_ERR_LAYERBOUND);
-               return DISP_E_EXCEPTION;
+       if (!(nLayer >= 0 && nLayer < MAXLAYER) || m_pComLayer[nLayer] == NULL) {
+               return Error(IDS_ERR_LAYERBOUND);
        }
+
        IUnknown* pUnk = NULL;
-       if(m_pComLayer[nLayer]->QueryInterface(IID_IUnknown,(void**)&pUnk) == S_OK){
+       if (SUCCEEDED(m_pComLayer[nLayer]->QueryInterface(IID_IUnknown, (void**)&pUnk))) {
                ::VariantInit(pVal);
-               pVal->vt      = VT_UNKNOWN;
+               pVal->vt = VT_UNKNOWN;
                pVal->punkVal = pUnk;
        }
        return S_OK;
@@ -62,42 +61,42 @@ STDMETHODIMP CCanvas::get_Layer(VARIANT varLay, VARIANT *pVal)
 
 /////////////////////////////////
 // \88ó\8dü\83\81\83\\83b\83h\81E\83v\83\8d\83p\83e\83B
-STDMETHODIMP CCanvas::PrintAs(VARIANT print,VARIANT* pRet)
+STDMETHODIMP CCanvas::PrintAs(VARIANT print, VARIANT* pRet)
 {
        CComVariant varRet, varPrint;
        PRINTDLG pdlg = {0};
        pdlg.lStructSize = sizeof(PRINTDLG);
        pdlg.hwndOwner = m_hParent;
        pdlg.Flags = PD_NOPAGENUMS | PD_RETURNDC;
-       if(PrintDlg(&pdlg)){
-               if(pdlg.hDevMode){
+       if (PrintDlg(&pdlg)) {
+               if (pdlg.hDevMode) {
                        // \83v\83\8a\83\93\83g\83f\83o\83C\83X\83p\83\89\83\81\81[\83^\81[\82ð\8eæ\93¾\82·\82é
                        DWORD siz = GlobalSize(pdlg.hDevMode);
-                       if(m_pPrinterDeviceMode){
+                       if (m_pPrinterDeviceMode) {
                                delete m_pPrinterDeviceMode;
                        }
                        DEVMODE *pDevMode = (DEVMODE*)GlobalLock(pdlg.hDevMode);
                        m_pPrinterDeviceMode = (DEVMODE*) new BYTE[siz + 1];
                        CopyMemory(m_pPrinterDeviceMode, pDevMode, siz);
                        // \83v\83\8a\83\93\83^\96¼\82ð\95Û\91
-                       StringCbCopy(m_szPrinterName, MAX_PATH, (LPCTSTR) pDevMode->dmDeviceName);
+                       StringCchCopy(m_szPrinterName, MAX_PATH, (LPCTSTR)pDevMode->dmDeviceName);
                        varRet = pDevMode->dmDeviceName;
                        GlobalUnlock(pdlg.hDevMode);
                        GlobalFree(pdlg.hDevMode);
                }
-               if(pdlg.hDevNames){
+               if (pdlg.hDevNames) {
                        GlobalFree(pdlg.hDevNames);
                }
                // \83v\83\8a\83\93\83g\82·\82é\82©\90Ý\92è\82¾\82¯\82©?
                BOOL bPrintOut = true;
-               if(print.vt != VT_EMPTY && print.vt != VT_NULL && print.vt != VT_ERROR
-                       && varPrint.ChangeType(VT_I2,&print) == S_OK){
+               if (print.vt != VT_EMPTY && print.vt != VT_NULL && print.vt != VT_ERROR
+                       && varPrint.ChangeType(VT_I2, &print) == S_OK) {
                        bPrintOut = varPrint.iVal;
                }
                CDC dc;
                dc.m_bPrinting = true;
-               dc.m_hDC       = pdlg.hDC;
-               if(bPrintOut){
+               dc.m_hDC = pdlg.hDC;
+               if (bPrintOut) {
                        PrintCore(dc);
                }
                DeleteDC(dc.m_hDC);
@@ -108,16 +107,16 @@ STDMETHODIMP CCanvas::PrintAs(VARIANT print,VARIANT* pRet)
 
 STDMETHODIMP CCanvas::Print()
 {
-       if(!m_pPrinterDeviceMode){
+       if (!m_pPrinterDeviceMode) {
                // \82Ü\82¾\83v\83\8a\83\93\83^\83f\83o\83C\83X\82ð\83I\81[\83v\83\93\82µ\82Ä\82¢\82È\82¢
                CComVariant dmy;
-               PrintAs(dmy,&dmy);
+               PrintAs(dmy, &dmy);
        }
-       else{
+       else {
                // \82·\82Å\82É\8eæ\93¾\82³\82ê\82½\83v\83\8a\83\93\83^\96¼\82Æ\83f\83o\83C\83X\83p\83\89\83\81\81[\83^\81[\82Å\88ó\8dü\82·\82é
-               HDC hdc = CreateDC(NULL,m_szPrinterName,NULL,m_pPrinterDeviceMode);
+               HDC hdc = CreateDC(NULL, m_szPrinterName, NULL, m_pPrinterDeviceMode);
                CDC dc;
-               dc.m_hDC       = hdc;
+               dc.m_hDC = hdc;
                dc.m_bPrinting = true;
                PrintCore(dc);
                DeleteDC(dc.m_hDC);
@@ -127,33 +126,32 @@ STDMETHODIMP CCanvas::Print()
 
 BOOL CCanvas::PrintCore(CDC dc)
 {
-       ::SetCursor(::LoadCursor(NULL,IDC_WAIT));
+       ::SetCursor(::LoadCursor(NULL, IDC_WAIT));
        // \83v\83\8a\83\93\83^\82Ì\83I\81[\83v\83\93
        DOCINFO dinfo = {0};
        dinfo.cbSize = sizeof(DOCINFO);
        dinfo.lpszDocName = _TEXT("SeraphyScriptTools");
-       int nJob = StartDoc(dc.m_hDC,&dinfo);
+       int nJob = StartDoc(dc.m_hDC, &dinfo);
        StartPage(dc.m_hDC);
        // \88ó\8dü\94Í\88Í\82Ì\90Ý\92è
-       SetMapMode(dc.m_hDC,MM_LOMETRIC);
-       int width  = GetDeviceCaps(dc.m_hDC,PHYSICALWIDTH);
-       int height = GetDeviceCaps(dc.m_hDC,PHYSICALHEIGHT);
-       SetViewportOrgEx(dc.m_hDC,0,height,NULL);
-       SetWindowOrgEx(dc.m_hDC,-m_marginWidth,-m_marginHeight,NULL);
+       SetMapMode(dc.m_hDC, MM_LOMETRIC);
+       int width = GetDeviceCaps(dc.m_hDC, PHYSICALWIDTH);
+       int height = GetDeviceCaps(dc.m_hDC, PHYSICALHEIGHT);
+       SetViewportOrgEx(dc.m_hDC, 0, height, NULL);
+       SetWindowOrgEx(dc.m_hDC, -m_marginWidth, -m_marginHeight, NULL);
        // \94w\8ci\83\82\81[\83h\90Ý\92è
-       SetBkMode(dc.m_hDC,TRANSPARENT);
+       SetBkMode(dc.m_hDC, TRANSPARENT);
        // \83\8c\83C\83\84\81[\82Ì\88ó\8dü
-       dc.m_rct.bottom = GetDeviceCaps(dc.m_hDC,VERTSIZE) * 10;
-       dc.m_rct.right  = GetDeviceCaps(dc.m_hDC,HORZSIZE) * 10;
-       dc.m_rct.bottom +=  - (m_marginHeight * 2); // \83r\83\85\81[\83|\81[\83g\82Ì\90Ý\92è\82Å\8fc\97]\94\92\82³\82ê\82Ä\82¢\82é\82Ì\82ð\83L\83\83\83\93\83Z\83\8b\82·\82é
-       int i;
-       for(i=0;i<MAXLAYER;i++){
+       dc.m_rct.bottom = GetDeviceCaps(dc.m_hDC, VERTSIZE) * 10;
+       dc.m_rct.right = GetDeviceCaps(dc.m_hDC, HORZSIZE) * 10;
+       dc.m_rct.bottom += -(m_marginHeight * 2); // \83r\83\85\81[\83|\81[\83g\82Ì\90Ý\92è\82Å\8fc\97]\94\92\82³\82ê\82Ä\82¢\82é\82Ì\82ð\83L\83\83\83\93\83Z\83\8b\82·\82é
+       for (int i = 0; i < MAXLAYER; i++) {
                m_pComLayer[i]->Draw(dc);
        }
        // \8fI\97¹
        EndPage(dc.m_hDC);
        EndDoc(dc.m_hDC);
-       ::SetCursor(::LoadCursor(NULL,IDC_ARROW));
+       ::SetCursor(::LoadCursor(NULL, IDC_ARROW));
        return true;
 }
 
@@ -161,13 +159,13 @@ STDMETHODIMP CCanvas::GetPrinterDefault(VARIANT name)
 {
        CComVariant varName;
        ATL::CString szPrinterName(_TEXT(""));
-       if (varName.ChangeType(VT_BSTR,&name) == S_OK) {
+       if (SUCCEEDED(varName.ChangeType(VT_BSTR, &name))) {
                szPrinterName = varName.bstrVal;
        }
        else {
                DWORD namesz = MAX_PATH;
                LPTSTR pName = szPrinterName.GetBufferSetLength(namesz);
-               if (!GetDefaultPrinter(pName, &namesz)){
+               if (!GetDefaultPrinter(pName, &namesz)) {
                        // \8aù\92è\82Ì\83v\83\8a\83\93\83^\82ª\8c©\82Â\82©\82ç\82È\82©\82Á\82½\8fê\8d\87
                        return Error(IDS_ERR_NODEFPRINTER);
                }
@@ -182,16 +180,18 @@ STDMETHODIMP CCanvas::GetPrinterDefault(VARIANT name)
                }
 
                // \95K\97v\82È\83p\83\89\83\81\81[\83^\81[\82Ì\95Û\8e\9d
-               DWORD sz = (DWORD)DocumentProperties(m_hParent, hp, szPrinterName.GetBuffer(), NULL, NULL, 0);
-               m_pPrinterDeviceMode = (DEVMODE*)new BYTE[sz+1];
+               DWORD sz = (DWORD)DocumentProperties(
+                       m_hParent, hp, szPrinterName.GetBuffer(), NULL, NULL, 0);
+               m_pPrinterDeviceMode = (DEVMODE*)new BYTE[sz + 1];
 
-               DocumentProperties(m_hParent, hp, szPrinterName.GetBuffer(), m_pPrinterDeviceMode, NULL, DM_OUT_BUFFER);
+               DocumentProperties(m_hParent, hp, szPrinterName.GetBuffer(),
+                       m_pPrinterDeviceMode, NULL, DM_OUT_BUFFER);
                ClosePrinter(hp);
 
                // \83v\83\8a\83\93\83^\96¼\82Ì\95Û\91
-               lstrcpy(m_szPrinterName, szPrinterName);
+               StringCchCopy(m_szPrinterName, MAX_PATH, szPrinterName);
        }
-       else{
+       else {
                // \83v\83\8a\83\93\83^\8fî\95ñ\82Ì\8eæ\93¾\82É\8e¸\94s\82µ\82½\8fê\8d\87
                return Error(IDS_ERR_PRINTERSETTING);
        }
@@ -222,28 +222,28 @@ STDMETHODIMP CCanvas::put_MarginHeight(long newVal)
        return S_OK;
 }
 
-void CCanvas::Draw(HDC hdc,RECT& rt)
+void CCanvas::Draw(HDC hdc, RECT& rt)
 {
        // \83}\83b\83s\83\93\83O\83\82\81[\83h
        int md = GetMapMode(hdc);
-       SetMapMode(hdc,MM_LOMETRIC);
-       POINT oldPort,oldWindow;
-       SetViewportOrgEx(hdc,0,rt.bottom,&oldPort);
-       SetWindowOrgEx(hdc,0,0,&oldWindow);
+       SetMapMode(hdc, MM_LOMETRIC);
+       POINT oldPort, oldWindow;
+       SetViewportOrgEx(hdc, 0, rt.bottom, &oldPort);
+       SetWindowOrgEx(hdc, 0, 0, &oldWindow);
        // \83\8c\83C\83\84\81[\83I\83u\83W\83F\83N\83g\82É\95`\89æ\82ð\8ds\82í\82¹\82é
        CDC dc;
-       dc.m_hDC       = hdc;
+       dc.m_hDC = hdc;
        dc.m_bPrinting = false;
-       dc.m_rct       = rt;
+       dc.m_rct = rt;
        int i;
-       for(i=0 ; i<MAXLAYER ; i++){
-               if(m_pComLayer[i] != NULL){
+       for (i = 0; i < MAXLAYER; i++) {
+               if (m_pComLayer[i] != NULL) {
                        m_pComLayer[i]->Draw(dc);
                }
        }
-       SetWindowOrgEx(hdc,oldWindow.x,oldWindow.y,NULL);
-       SetViewportOrgEx(hdc,oldPort.x,oldPort.y,NULL);
-       SetMapMode(hdc,md);
+       SetWindowOrgEx(hdc, oldWindow.x, oldWindow.y, NULL);
+       SetViewportOrgEx(hdc, oldPort.x, oldPort.y, NULL);
+       SetMapMode(hdc, md);
 }
 
 void CCanvas::DetachOwner()
@@ -263,15 +263,14 @@ STDMETHODIMP CCanvas::LoadPicture(VARIANT file, VARIANT *punkVal)
 {
        ::VariantInit(punkVal);
        CComVariant varFile;
-       if(varFile.ChangeType(VT_BSTR,&file) != S_OK){
+       if (varFile.ChangeType(VT_BSTR, &file) != S_OK) {
                return DISP_E_TYPEMISMATCH;
        }
        IPicture* pPicture = NULL;
-       if(OleLoadPicturePath(varFile.bstrVal,NULL,0,NULL,IID_IPicture,(void**)&pPicture) != S_OK){
-               ErrorInfo(IDS_ERR_PICTURELOADFAIL);
-               return DISP_E_EXCEPTION;
+       if (OleLoadPicturePath(varFile.bstrVal, NULL, 0, NULL, IID_IPicture, (void**)&pPicture) != S_OK) {
+               return Error(IDS_ERR_PICTURELOADFAIL);
        }
-       punkVal->vt      = VT_UNKNOWN;
+       punkVal->vt = VT_UNKNOWN;
        punkVal->punkVal = pPicture; // (IUnknown*)
        return S_OK;
 }