14 #define FUNC_DEVICEPROPERTIES "DevicePropertiesW" 17 #define FUNC_DEVICEPROPERTIES "DevicePropertiesA" 37 if (lpDevInstID !=
NULL)
44 if (pDeviceProperties !=
NULL)
46 pDeviceProperties(
This->hwndDlg,
48 This->SelMonitor->dd.DeviceID,
65 if (
This->dwMonitorCount > 1)
96 This->bModesPruned && !
This->bKeyIsReadOnly);
109 This->DeskExtInterface->GetPruningMode(
This->DeskExtInterface->Context,
116 This->bModesPruned = (bModesPruned !=
FALSE);
117 This->bKeyIsReadOnly = (bKeyIsReadOnly !=
FALSE);
118 This->bPruningOn = (bPruningOn !=
FALSE);
140 lpCurrentMode =
This->DeskExtInterface->GetCurrentMode(
This->DeskExtInterface->Context);
145 lpMode =
This->DeskExtInterface->EnumAllModes(
This->DeskExtInterface->Context,
147 if (lpMode !=
NULL &&
165 sizeof(szBuffer) /
sizeof(szBuffer[0])))
167 szBuffer[0] =
TEXT(
'\0');
177 sizeof(szFmt) /
sizeof(szFmt[0])))
179 szFmt[0] =
TEXT(
'\0');
183 sizeof(szBuffer) /
sizeof(szBuffer[0]),
214 }
while (lpMode !=
NULL);
239 pmi =
This->Monitors;
249 This->dwMonitorCount = 0;
263 pmilink = &
This->Monitors;
268 bRet = EnumDisplayDevices(
This->lpDisplayDevice,
283 pmilink = &pmi->
Next;
285 This->dwMonitorCount++;
291 This->lpDevModeOnInit =
This->DeskExtInterface->GetCurrentMode(
This->DeskExtInterface->Context);
296 This->lpSelDevMode =
This->lpDevModeOnInit;
299 if (
This->dwMonitorCount == 0)
311 if (lpMonitorName !=
NULL)
314 else if (
This->dwMonitorCount == 1)
319 This->Monitors->dd.DeviceString);
329 pmi =
This->Monitors;
353 This->SelMonitor = pmi;
378 if (
This->DeskExtInterface !=
NULL &&
This->bModesPruned && !
This->bKeyIsReadOnly)
383 if (bPruningOn !=
This->bPruningOn)
386 This->bPruningOn = bPruningOn;
387 This->DeskExtInterface->SetPruningMode(
This->DeskExtInterface->Context,
416 lpCurrentDevMode =
This->lpSelDevMode;
423 if (
This->lpSelDevMode !=
NULL &&
This->lpSelDevMode != lpCurrentDevMode)
425 This->DeskExtInterface->SetCurrentMode(
This->DeskExtInterface->Context,
450 This->lpDevModeOnInit =
This->DeskExtInterface->GetCurrentMode(
This->DeskExtInterface->Context);
451 This->lpSelDevMode =
This->lpDevModeOnInit;
472 This->DeskExtInterface->SetCurrentMode(
This->DeskExtInterface->Context,
473 This->lpDevModeOnInit);
495 This->hwndDlg = hwndDlg;
562 IDataObject_Release(
This->pdtobj);
579 pmi =
This->Monitors;
628 &IID_IShellPropSheetExt) ||
646 DPRINT1(
"IDeskMonitor::QueryInterface(%p,%p): E_NOINTERFACE\n", iid, pvObject);
660 DPRINT1(
"IDeskMonitor::Initialize(%p,%p,%p)\n", pidlFolder, pdtobj, hkeyProgID);
664 IDataObject_AddRef(pdtobj);
665 This->pdtobj = pdtobj;
684 DPRINT1(
"IDeskMonitor::AddPages(%p,%p)\n", pfnAddPage,
lParam);
686 psp.dwSize =
sizeof(psp);
706 DPRINT1(
"IDeskMonitor::ReplacePage(%u,%p,%p)\n", uPageID, pfnReplacePage,
lParam);
HRESULT IDeskMonitor_Initialize(PDESKMONITOR This, LPCITEMIDLIST pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID)
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
struct _DESKMONINFO * Next
#define IDS_USEDEFFRQUENCY
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
struct _devicemodeW * PDEVMODEW
DECLSPEC_HIDDEN LONG dll_refs
static INT_PTR CALLBACK MonitorDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define DISP_CHANGE_RESTART
static VOID IDeskMonitor_Destroy(PDESKMONITOR This)
static VOID UpdatePruningSelection(PDESKMONITOR This)
static __inline PDESK_EXT_INTERFACE QueryDeskCplExtInterface(IDataObject *pdo)
#define PropSheet_RestartWindows(d)
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
static VOID ShowMonitorProperties(PDESKMONITOR This)
static VOID UpdateRefreshRateSelection(PDESKMONITOR This)
BOOL(CALLBACK * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM)
#define DLL_PROCESS_ATTACH
#define SendDlgItemMessage
static LPTSTR GetMonitorDevInstID(LPCTSTR lpDeviceID)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
static __inline LONG DeskCplExtDisplaySaveSettings(PDESK_EXT_INTERFACE DeskExtInterface, HWND hwndDlg)
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpvReserved)
static IN DWORD IN LPVOID lpvReserved
HRESULT STDMETHODCALLTYPE IDeskMonitor_QueryInterface(PDESKMONITOR This, REFIID iid, PVOID *pvObject)
static VOID UpdateMonitorSelection(PDESKMONITOR This)
struct _DESKMONITOR * PDESKMONITOR
HRESULT IDeskMonitor_ReplacePage(PDESKMONITOR This, EXPPS uPageID, LPFNADDPROPSHEETPAGE pfnReplacePage, LPARAM lParam)
struct _PSP * HPROPSHEETPAGE
static VOID UpdatePruningControls(PDESKMONITOR This)
#define PSNRET_INVALID_NOCHANGEPAGE
HRESULT IDeskMonitor_Constructor(REFIID riid, LPVOID *ppv)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
#define CreatePropertySheetPage
#define IDS_MONITORSETTINGSGROUP
static VOID ResetMonitorChanges(PDESKMONITOR This)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define PropSheet_Changed(d, w)
static VOID UpdateRefreshFrequencyList(PDESKMONITOR This)
#define DISP_CHANGE_SUCCESSFUL
#define STDMETHODCALLTYPE
#define FUNC_DEVICEPROPERTIES
ULONG IDeskMonitor_Release(PDESKMONITOR This)
static VOID GetPruningSettings(PDESKMONITOR This)
#define IDC_MONITORPROPERTIES
#define InterlockedDecrement
VOID IDeskMonitor_InitIface(PDESKMONITOR This)
static VOID InitMonitorDialog(PDESKMONITOR This)
static HINSTANCE hInstance
#define IDS_REFRESHRATELABEL
#define RegisterClipboardFormat
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
ULONG IDeskMonitor_AddRef(PDESKMONITOR This)
static LONG ApplyMonitorChanges(PDESKMONITOR This)
HWND WINAPI GetParent(_In_ HWND)
#define InterlockedIncrement
#define impl_to_interface(impl, iface)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HLOCAL NTAPI LocalFree(HLOCAL hMem)
HRESULT IDeskMonitor_AddPages(PDESKMONITOR This, LPFNADDPROPSHEETPAGE pfnAddPage, LPARAM lParam)
static __inline LPTSTR QueryDeskCplString(IDataObject *pdo, UINT cfFormat)
#define DESK_EXT_DISPLAYDEVICE
struct _DESKMONINFO * PDESKMONINFO
#define GetProcAddress(x, y)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
INT_PTR(WINAPI * PDEVICEPROPERTIES)(HWND, LPCSTR, LPCSTR, BOOL)
const GUID IID_IClassFactory
#define DESK_EXT_MONITORNAME
#define HeapFree(x, y, z)
#define IsEqualIID(riid1, riid2)