OSDN Git Service

SetCallbackProcをLoadLibraryに統合。
[tpi/lychee.git] / src / plugin / calLibrary / calLibrary.cpp
index 333fbf6..0dde981 100644 (file)
@@ -589,6 +589,7 @@ int __stdcall GetFormatInformation(TPI_FORMATINFO * _fiInfo, bool _bFirst)
 int __stdcall LoadPlugin\r
 (\r
        const wxString & _szArcName,\r
+       TPI_PROC _prProc,\r
        wxULongLong_t _nTypeId\r
 )\r
 {\r
@@ -623,6 +624,14 @@ int __stdcall LoadPlugin
                g_LibInfoAlt.szPrefix = xmlLibrary->GetAttribute(wxT("prefix-alt"), wxEmptyString);\r
                g_LibInfoAlt.fUnicode = myGetAttributeBool(xmlLibrary, wxT("unicode-alt"));\r
                g_LibInfoAlt.hLib = ::LoadLibrary(xmlLibrary->GetAttribute(wxT("name-alt"), wxEmptyString).wchar_str());\r
+\r
+               // コールバック関数を設定。\r
+               if (_prProc != NULL)\r
+               {\r
+                       g_prProc = * _prProc;\r
+                       CalSetCallbackProc(true);\r
+                       CalSetCallbackProc(false);\r
+               }\r
                return TPI_ERROR_SUCCESS;\r
        }\r
 \r
@@ -659,6 +668,13 @@ int __stdcall LoadPlugin
                                ? ((BOOL (__stdcall *)(const wchar_t *, const int)) fpProc)(_szArcName.wchar_str(), 0)\r
                                : ((BOOL (__stdcall *)(const char    *, const int)) fpProc)(_szArcName.ToUTF8(),    0)))\r
                {\r
+                       // コールバック関数を設定。\r
+                       if (_prProc != NULL)\r
+                       {\r
+                               g_prProc = * _prProc;\r
+                               CalSetCallbackProc(true);\r
+                               CalSetCallbackProc(false);\r
+                       }\r
                        return TPI_ERROR_SUCCESS;\r
                }\r
                ::FreeLibrary(g_LibInfo.hLib);\r
@@ -959,23 +975,6 @@ int __stdcall Command
        return ErrorCodeConvert(nErrorCode);\r
 }\r
 \r
-int __stdcall SetCallbackProc\r
-(\r
-       TPI_PROC _prArcProc\r
-)\r
-{\r
-       // ポインタを保存。\r
-       if (_prArcProc == NULL)\r
-       {\r
-               return TPI_ERROR_D_PARAMETER;\r
-       }\r
-       g_prProc = * _prArcProc;\r
-\r
-       // コールバック関数を設定。\r
-       CalSetCallbackProc(true);\r
-       return CalSetCallbackProc(false);\r
-}\r
-\r
 #ifdef __cplusplus\r
 }\r
 #endif\r