windows-nt/Source/XPSP1/NT/shell/cpls/common/deskcmmn.h
2020-09-26 16:20:57 +08:00

158 lines
5.8 KiB
C

#ifndef _DESKCMMN_H
#define _DESKCMMN_H
//==========================================================================
// Guids
//==========================================================================
DEFINE_GUID(GUID_DISPLAY_ADAPTER_INTERFACE,
0x5b45201d,
0xf2f2, 0x4f3b,
0x85, 0xbb, 0x30, 0xff, 0x1f, 0x95, 0x35, 0x99);
#define SZ_DISPLAY_ADAPTER_INTERFACE_NAME TEXT("{5b45201d-f2f2-4f3b-85bb-30ff1f953599}")
//==========================================================================
// Macros
//==========================================================================
#define SZ_REGISTRYMACHINE TEXT("\\REGISTRY\\MACHINE\\")
#define SZ_PRUNNING_MODE TEXT("PruningMode")
#define SZ_GUID TEXT("VideoID")
#define SZ_VIDEO_DEVICES TEXT("System\\CurrentControlSet\\Control\\Video\\")
#define SZ_COMMON_SUBKEY TEXT("\\Video")
#define SZ_SERVICES_PATH TEXT("System\\CurrentControlSet\\Services\\")
#define SZ_SERVICE TEXT("Service")
#define DCDSF_DYNA (0x0001)
#define DCDSF_ASK (0x0002)
#define DCDSF_PROBABLY (DCDSF_ASK | DCDSF_DYNA)
#define DCDSF_PROBABLY_NOT (DCDSF_ASK | 0)
#define DCDSF_YES (0 | DCDSF_DYNA)
#define DCDSF_NO (0 | 0)
#define REGSTR_VAL_DYNASETTINGSCHANGE TEXT("DynaSettingsChange")
#define SZ_UPGRADE_FROM_PLATFORM TEXT("PlatformId")
#define SZ_UPGRADE_FROM_MAJOR_VERSION TEXT("MajorVersion")
#define SZ_UPGRADE_FROM_MINOR_VERSION TEXT("MinorVersion")
#define SZ_UPGRADE_FROM_BUILD_NUMBER TEXT("BuildNumber")
#define SZ_UPGRADE_FROM_VERSION_DESC TEXT("CSDVersion")
#define SZ_UPGRADE_FROM_PELS_WIDTH TEXT("PelsWidth")
#define SZ_UPGRADE_FROM_PELS_HEIGHT TEXT("PelsHeight")
#define SZ_UPGRADE_FROM_BITS_PER_PEL TEXT("BPP")
#define SZ_UPGRADE_FROM_PLANES TEXT("Planes")
#define SZ_UPGRADE_FROM_DISPLAY_FREQ TEXT("VRefresh")
#define SZ_UPGRADE_FAILED_ALLOW_INSTALL TEXT("FailedAllowInstall")
#define SZ_VIDEOMAP TEXT("HARDWARE\\DEVICEMAP\\VIDEO")
#define SZ_DEVICE TEXT("\\Device")
#define SZ_ENUM TEXT("Enum")
#define SZ_UPDATE_SETTINGS TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion\\VideoUpgradeDisplaySettings")
#define SZ_UPDATE_SETTINGS_PATH TEXT("Software\\Microsoft\\Windows NT\\CurrentVersion")
#define SZ_UPDATE_SETTINGS_KEY TEXT("VideoUpgradeDisplaySettings")
#define SZ_VU_COUNT TEXT("Count")
#define SZ_VU_PHYSICAL TEXT("Physical")
#define SZ_VU_LOGICAL TEXT("Logical")
#define SZ_VU_BUS_NUMBER TEXT("BusNumber")
#define SZ_VU_ADDRESS TEXT("Address")
#define SZ_VU_PREFERRED_MODE TEXT("UsePreferredMode")
#define SZ_VU_ATTACHED_TO_DESKTOP TEXT("Attach.ToDesktop")
#define SZ_VU_RELATIVE_X TEXT("Attach.RelativeX")
#define SZ_VU_RELATIVE_Y TEXT("Attach.RelativeY")
#define SZ_VU_BITS_PER_PEL TEXT("DefaultSettings.BitsPerPel")
#define SZ_VU_X_RESOLUTION TEXT("DefaultSettings.XResolution")
#define SZ_VU_Y_RESOLUTION TEXT("DefaultSettings.YResolution")
#define SZ_VU_VREFRESH TEXT("DefaultSettings.VRefresh")
#define SZ_VU_FLAGS TEXT("DefaultSettings.Flags")
#define SZ_HW_ACCELERATION TEXT("Acceleration.Level")
#define SZ_VOLATILE_SETTINGS TEXT("VolatileSettings")
#define SZ_DETECT_DISPLAY TEXT("System\\CurrentControlSet\\Control\\GraphicsDrivers\\DetectDisplay")
#define SZ_NEW_DISPLAY TEXT("System\\CurrentControlSet\\Control\\GraphicsDrivers\\NewDisplay")
#define SZ_SERVICES_TO_DISABLE TEXT("ServicesToDisable")
#define SZ_APPEXT_TO_DELETE TEXT("AppletExtensionsToDelete")
#define SZ_SHELLEX TEXT("shellex")
#define REGSTR_PATH_CONTROLSFOLDER_DISPLAY REGSTR_PATH_CONTROLSFOLDER TEXT("\\Display")
#define REGSTR_PATH_CONTROLSFOLDER_DISPLAY_SHEX_PROPSHEET REGSTR_PATH_CONTROLSFOLDER_DISPLAY TEXT("\\shellex\\PropertySheetHandlers")
#define REGSTR_PATH_CONTROLSFOLDER_DEVICE REGSTR_PATH_CONTROLSFOLDER TEXT("\\Device")
#define REGSTR_PATH_CONTROLSFOLDER_DEVICE_SHEX_PROPSHEET REGSTR_PATH_CONTROLSFOLDER_DEVICE TEXT("\\shellex\\PropertySheetHandlers")
//==========================================================================
// Functions
//==========================================================================
// LPTSTR SubStrEnd(LPTSTR pszTarget, LPTSTR pszScan )
//
// If pszScan starts with pszTarget, then the function returns the first
// char of pszScan that follows the pszTarget; other wise it returns pszScan.
//
// eg: SubStrEnd("abc", "abcdefg" ) ==> "defg"
// SubStrEnd("abc", "abZQRT" ) ==> "abZQRT"
LPTSTR SubStrEnd(LPTSTR pszTarget, LPTSTR pszScan);
BOOL GetDeviceRegKey(LPCTSTR pstrDeviceKey, HKEY* phKey, BOOL* pbReadOnly);
int GetDisplayCPLPreference(LPCTSTR szRegVal);
int GetDynaCDSPreference();
void SetDisplayCPLPreference(LPCTSTR szRegVal, int val);
LONG WINAPI MyStrToLong(LPCTSTR sz);
BOOL
AllocAndReadInterfaceName(
IN LPTSTR pDeviceKey,
OUT LPWSTR* ppInterfaceName
);
BOOL
AllocAndReadInstanceID(
IN LPTSTR pDeviceKey,
OUT LPWSTR* ppInstanceID
);
BOOL
AllocAndReadValue(
IN HKEY hkKey,
IN LPTSTR pValueName,
OUT LPWSTR* ppwValueData
);
typedef struct _APPEXT {
TCHAR szKeyName[MAX_PATH];
TCHAR szDefaultValue[MAX_PATH];
struct _APPEXT* pNext;
} APPEXT, *PAPPEXT;
VOID
DeskAESnapshot(
HKEY hkExtensions,
PAPPEXT* ppAppExtList
);
VOID
DeskAECleanup(
PAPPEXT pAppExtList
);
#endif // _DESKCMMN_H