diff --git a/GpuRamDrive/GpuRamGui.cpp b/GpuRamDrive/GpuRamGui.cpp index 7beba97..02c14fa 100644 --- a/GpuRamDrive/GpuRamGui.cpp +++ b/GpuRamDrive/GpuRamGui.cpp @@ -219,6 +219,11 @@ void GpuRamGui::OnDestroy() PostQuitMessage(0); } +void GpuRamGui::OnEndSession() +{ + m_RamDrive.ImdiskUnmountDevice(); +} + void GpuRamGui::OnResize(WORD width, WORD height, bool minimized) { MoveWindow(m_CtlGpuList, 150, 10, width - 150 - 20, 20, TRUE); @@ -365,6 +370,10 @@ LRESULT CALLBACK GpuRamGui::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPAR break; } + case WM_ENDSESSION: + if (_this) _this->OnEndSession(); + break; + case WM_DESTROY: if (_this) _this->OnDestroy(); break; diff --git a/GpuRamDrive/GpuRamGui.h b/GpuRamDrive/GpuRamGui.h index a9cbe5e..f3397d0 100644 --- a/GpuRamDrive/GpuRamGui.h +++ b/GpuRamDrive/GpuRamGui.h @@ -32,6 +32,7 @@ class GpuRamGui private: void OnCreate(); void OnDestroy(); + void OnEndSession(); void OnResize(WORD width, WORD height, bool minimized); void OnMountClicked(); void OnTrayInteraction(LPARAM lParam);