mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
Display the display device adapter name and show device properties
svn path=/trunk/; revision=29221
This commit is contained in:
@@ -5,6 +5,54 @@
|
||||
|
||||
static HINSTANCE hInstance;
|
||||
|
||||
typedef INT_PTR (WINAPI *PDEVICEPROPERTIESEXW)(HWND,LPCWSTR,LPCWSTR,DWORD,BOOL);
|
||||
|
||||
static VOID
|
||||
ShowAdapterProperties(PDESKDISPLAYADAPTER This)
|
||||
{
|
||||
HMODULE hDevMgr;
|
||||
PDEVICEPROPERTIESEXW pDevicePropertiesExW;
|
||||
|
||||
hDevMgr = LoadLibrary(TEXT("devmgr.dll"));
|
||||
if (hDevMgr != NULL)
|
||||
{
|
||||
pDevicePropertiesExW = (PDEVICEPROPERTIESEXW)GetProcAddress(hDevMgr,
|
||||
"DevicePropertiesExW");
|
||||
if (pDevicePropertiesExW != NULL)
|
||||
{
|
||||
pDevicePropertiesExW(This->hwndDlg,
|
||||
NULL,
|
||||
This->lpDeviceId,
|
||||
0,
|
||||
FALSE);
|
||||
}
|
||||
|
||||
FreeLibrary(hDevMgr);
|
||||
}
|
||||
}
|
||||
|
||||
static VOID
|
||||
InitDisplayAdapterDialog(PDESKDISPLAYADAPTER This)
|
||||
{
|
||||
LPTSTR lpAdapterName;
|
||||
|
||||
This->lpDeviceId = QueryDeskCplString(This->pdtobj,
|
||||
RegisterClipboardFormat(DESK_EXT_DISPLAYID));
|
||||
EnableWindow(GetDlgItem(This->hwndDlg,
|
||||
IDC_ADAPTERPROPERTIES),
|
||||
This->lpDeviceId != NULL && This->lpDeviceId[0] != TEXT('\0'));
|
||||
lpAdapterName = QueryDeskCplString(This->pdtobj,
|
||||
RegisterClipboardFormat(DESK_EXT_DISPLAYNAME));
|
||||
if (lpAdapterName != NULL)
|
||||
{
|
||||
SetDlgItemText(This->hwndDlg,
|
||||
IDC_ADAPTERNAME,
|
||||
lpAdapterName);
|
||||
|
||||
LocalFree((HLOCAL)lpAdapterName);
|
||||
}
|
||||
}
|
||||
|
||||
static INT_PTR CALLBACK
|
||||
DisplayAdapterDlgProc(HWND hwndDlg,
|
||||
UINT uMsg,
|
||||
@@ -24,12 +72,24 @@ DisplayAdapterDlgProc(HWND hwndDlg,
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
This = (PDESKDISPLAYADAPTER)((LPCPROPSHEETPAGE)lParam)->lParam;
|
||||
This->hwndDlg = hwndDlg;
|
||||
SetWindowLongPtr(hwndDlg,
|
||||
DWL_USER,
|
||||
(LONG_PTR)This);
|
||||
|
||||
InitDisplayAdapterDialog(This);
|
||||
Ret = TRUE;
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDC_ADAPTERPROPERTIES:
|
||||
ShowAdapterProperties(This);
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return Ret;
|
||||
@@ -49,6 +109,12 @@ IDeskDisplayAdapter_Destroy(PDESKDISPLAYADAPTER This)
|
||||
LocalFree((HLOCAL)This->DeskExtInterface);
|
||||
This->DeskExtInterface = NULL;
|
||||
}
|
||||
|
||||
if (This->lpDeviceId != NULL)
|
||||
{
|
||||
LocalFree((HLOCAL)This->lpDeviceId);
|
||||
This->lpDeviceId = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
ULONG
|
||||
|
||||
@@ -8,8 +8,10 @@ typedef struct _DESKDISPLAYADAPTER
|
||||
const struct IClassFactoryVtbl *lpIClassFactoryVtbl;
|
||||
DWORD ref;
|
||||
|
||||
HWND hwndDlg;
|
||||
PDESK_EXT_INTERFACE DeskExtInterface;
|
||||
IDataObject *pdtobj;
|
||||
LPTSTR lpDeviceId;
|
||||
} DESKDISPLAYADAPTER, *PDESKDISPLAYADAPTER;
|
||||
|
||||
extern LONG dll_refs;
|
||||
|
||||
@@ -5,6 +5,8 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Adapter"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
|
||||
GROUPBOX "Adapter Type", -1, 7, 3, 237, 50
|
||||
LTEXT "", IDC_ADAPTERNAME, 40, 17, 190, 20
|
||||
PUSHBUTTON "&Properties", IDC_ADAPTERPROPERTIES, 177, 33, 59, 14
|
||||
END
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#define COBJMACROS
|
||||
#include <windows.h>
|
||||
#include <tchar.h>
|
||||
#include <shlobj.h>
|
||||
#include <dll/desk/deskcplx.h>
|
||||
#include "deskadp.h"
|
||||
|
||||
@@ -3,4 +3,7 @@
|
||||
|
||||
#define IDD_DISPLAYADAPTER 100
|
||||
|
||||
#define IDC_ADAPTERNAME 201
|
||||
#define IDC_ADAPTERPROPERTIES 201
|
||||
|
||||
#endif /* __RESOURCE__H */
|
||||
|
||||
Reference in New Issue
Block a user