OSDN Git Service

Add WinMergePluginBase.h (7)
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 5 Jun 2021 01:19:35 +0000 (10:19 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sat, 5 Jun 2021 01:19:35 +0000 (10:19 +0900)
Src/WinMergePluginBase.h

index b8bd3b0..c62b2f3 100644 (file)
@@ -186,7 +186,7 @@ public:
                                BSTR fileSrc = pDispParams->rgvarg[3].bstrVal;
                                BSTR fileDst = pDispParams->rgvarg[2].bstrVal;
                                VARIANT_BOOL* pbChanged = pDispParams->rgvarg[1].pboolVal;
-                               INT* pSubcode = &pDispParams->rgvarg[0].intVal;
+                               INT* pSubcode = pDispParams->rgvarg[0].pintVal;
                                VARIANT_BOOL* pbSuccess = &pVarResult->boolVal;
                                hr = UnpackFile(fileSrc, fileDst, pbChanged, pSubcode, pbSuccess);
                                break;
@@ -213,7 +213,7 @@ public:
                                BSTR fileSrc = pDispParams->rgvarg[3].bstrVal;
                                BSTR folderDst = pDispParams->rgvarg[2].bstrVal;
                                VARIANT_BOOL* pbChanged = pDispParams->rgvarg[1].pboolVal;
-                               INT* pSubcode = &pDispParams->rgvarg[0].intVal;
+                               INT* pSubcode = pDispParams->rgvarg[0].pintVal;
                                VARIANT_BOOL* pbSuccess = &pVarResult->boolVal;
                                hr = UnpackFolder(fileSrc, folderDst, pbChanged, pSubcode, pbSuccess);
                                break;
@@ -268,6 +268,13 @@ public:
                                break;
                        }
                }
+               if (hr == DISP_E_EXCEPTION && pExcepInfo)
+               {
+                       IErrorInfo* pErrorInfo = nullptr;
+                       GetErrorInfo(0, &pErrorInfo);
+                       pErrorInfo->GetDescription(&pExcepInfo->bstrDescription);
+                       pErrorInfo->GetSource(&pExcepInfo->bstrSource);
+               }
                return hr;
        }