1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #include "./common.h"
- #include "./setupDetails.h"
- #include "./setupServicePanel.h"
- EXTERN_C ATOM DETAILS_PROP = 0;
- HMODULE hEditModule = NULL;
- BOOL SetupDetails_Initialize()
- {
- if (0 == DETAILS_PROP)
- {
- DETAILS_PROP = GlobalAddAtom(L"omSetupDetailsProp");
- if (0 == DETAILS_PROP) return FALSE;
- }
- if (NULL == (hEditModule = LoadLibrary(L"riched20.dll")))
- return FALSE;
- return TRUE;
- }
- void SetupDetails_Uninitialize()
- {
- if (NULL != hEditModule)
- {
- FreeLibrary(hEditModule);
- hEditModule = NULL;
- }
- if (0 != DETAILS_PROP)
- {
- GlobalDeleteAtom(DETAILS_PROP);
- DETAILS_PROP = 0;
- }
- }
- void SetupDetails_SetDescription(HWND hEdit, LPCWSTR pszText)
- {
- SetWindowText(hEdit, pszText);
- DWORD originalStyle = GetWindowStyle(hEdit);
- DWORD windowStyle = originalStyle & ~WS_VSCROLL;
- INT lineCount = (INT)SendMessage(hEdit, EM_GETLINECOUNT, 0, 0L);
- if (lineCount > 0)
- {
- INT charIndex = (INT)SendMessage(hEdit, EM_LINEINDEX, (WPARAM)(lineCount - 1), 0L);
- if (-1 != charIndex)
- {
- LRESULT result = SendMessage(hEdit, EM_POSFROMCHAR, charIndex, 0L);
- POINTS pts = MAKEPOINTS(result);
- RECT clientRect;
- if (GetClientRect(hEdit, &clientRect) && pts.y > (clientRect.bottom - 14))
- {
- windowStyle |= WS_VSCROLL;
- }
- }
- }
-
- if (windowStyle != originalStyle)
- {
- SetWindowLongPtr(hEdit, GWL_STYLE, windowStyle);
- SetWindowPos(hEdit, NULL, 0, 0, 0, 0, SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOSIZE | SWP_NOMOVE | SWP_FRAMECHANGED);
- }
- ShowWindow(hEdit, SW_HIDE);
- if (0 != ShowWindow(hEdit, (L'\0' != *pszText) ? SW_SHOWNA : SW_HIDE))
- InvalidateRect(hEdit, NULL, TRUE);
- }
- HWND SetupDetails_CreateServiceView(HWND hParent, LPCWSTR pszName, ifc_omservice *service)
- {
- return ServicePanel::CreateInstance(hParent, pszName, service, NULL);
- }
- BOOL SetupDetails_GetUniqueName(HWND hwnd, LPWSTR pszBuffer, UINT cchBufferMax)
- {
- return (BOOL)SendMessage(hwnd, NSDM_GETUNIQUENAME, (WPARAM)cchBufferMax, (LPARAM)pszBuffer);
- }
|