summaryrefslogtreecommitdiff
path: root/plugins/Import/src
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Import/src')
-rw-r--r--plugins/Import/src/main.cpp10
-rw-r--r--plugins/Import/src/wizard.cpp4
2 files changed, 12 insertions, 2 deletions
diff --git a/plugins/Import/src/main.cpp b/plugins/Import/src/main.cpp
index 5526cdf435..b7dde39442 100644
--- a/plugins/Import/src/main.cpp
+++ b/plugins/Import/src/main.cpp
@@ -75,7 +75,7 @@ extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD)
/////////////////////////////////////////////////////////////////////////////////////////
// MirandaInterfaces - returns the protocol interface to the core
-extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_IMPORT, MIID_LAST};
+extern "C" __declspec(dllexport) const MUUID MirandaInterfaces[] = {MIID_IMPORT, MIID_SERVICEMODE, MIID_LAST};
/////////////////////////////////////////////////////////////////////////////////////////
// Performs a primary set of actions upon plugin loading
@@ -105,12 +105,18 @@ static int OnExit(WPARAM, LPARAM)
return 0;
}
+static INT_PTR ServiceMode(WPARAM, LPARAM)
+{
+ CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_WIZARD), NULL, WizardDlgProc, 1);
+ return SERVICE_ONLYDB;
+}
+
extern "C" __declspec(dllexport) int Load(void)
{
mir_getLP( &pluginInfo );
hImportService = CreateServiceFunction(IMPORT_SERVICE, ImportCommand);
-
+ CreateServiceFunction(MS_SERVICEMODE_LAUNCH, ServiceMode);
RegisterIcons();
// menu item
diff --git a/plugins/Import/src/wizard.cpp b/plugins/Import/src/wizard.cpp
index c39fc91927..fc0c4a89aa 100644
--- a/plugins/Import/src/wizard.cpp
+++ b/plugins/Import/src/wizard.cpp
@@ -94,6 +94,7 @@ INT_PTR CALLBACK WizardDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lP
switch (message) {
case WM_INITDIALOG:
+ SetWindowLong(hdlg, GWL_USERDATA, lParam);
TranslateDialogDefault(hdlg);
hwndPage = CreateDialog(hInst, MAKEINTRESOURCE(IDD_WIZARDINTRO), hdlg, WizardIntroPageProc);
SetWindowPos(hwndPage, 0, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOSIZE);
@@ -158,6 +159,9 @@ INT_PTR CALLBACK WizardDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lP
DestroyWindow(hwndPage);
DestroyWindow(hdlg);
break;
+ case WM_DESTROY:
+ if (GetWindowLong(hdlg, GWL_USERDATA))
+ PostQuitMessage(0);
}
return FALSE;