MONITORREG 结构 (winsplp.h)

MONITORREG 结构为打印监视器提供要使用的注册表函数地址,而不是 Win32 注册表 API 函数。

语法

typedef struct _MONITORREG {
  DWORD cbSize;
  LONG()(HKEYMONITOR hcKey,LPCTSTR pszSubKey,DWORD dwOptions,REGSAM samDesired,PSECURITY_ATTRIBUTES pSecurityAttributes,HKEYMONITOR *phckResult,PDWORD pdwDisposition,HANDLE hSpooler) * fpCreateKey;
  LONG()(HKEYMONITOR hcKey,LPCTSTR pszSubKey,REGSAM samDesired,HKEYMONITOR *phkResult,HANDLE hSpooler) * fpOpenKey;
  LONG( )(HKEYMONITOR hcKey,HANDLE hSpooler) *fpCloseKey;
  LONG( )(HKEYMONITOR hcKey,LPCTSTR pszSubKey,HANDLE hSpooler) *fpDeleteKey;
  LONG( )(HKEYMONITOR hcKey,DWORD dwIndex,LPTSTR pszName,PDWORD pcchName,PFILETIME pftLastWriteTime,HANDLE hSpooler) *fpEnumKey;
  LONG( )(HKEYMONITOR hcKey,PDWORD pcSubKeys,PDWORD pcbKey,PDWORD pcValues,PDWORD pcbValue,PDWORD pcbData,PDWORD pcbSecurityDescriptor,PFILETIME pftLastWriteTime,HANDLE hSpooler) *fpQueryInfoKey;
  LONG()(HKEYMONITOR hcKey,LPCTSTR pszValue,DWORD dwType, const BYTE *pData,DWORD cbData,HANDLE hSpooler) * fpSetValue;
  LONG( )(HKEYMONITOR hcKey,LPCTSTR pszValue,HANDLE hSpooler) *fpDeleteValue;
  LONG( )(HKEYMONITOR hcKey,DWORD dwIndex,LPTSTR pszValue,PDWORD pcbValue,PDWORD pTyp,PBYTE pData,PDWORD pcbData,HANDLE hSpooler) *fpEnumValue;
  LONG( )(HKEYMONITOR hcKey,LPCTSTR pszValue,PDWORD pType,PBYTE pData,PDWORD pcbData,HANDLE hSpooler) *fpQueryValue;
} MONITORREG, *PMONITORREG;

成员

cbSize

MONITORREG 结构的大小(以字节为单位)。

fpCreateKey

指向 CreateKey 后台处理程序注册表函数的指针。

fpOpenKey

指向 OpenKey 后台处理程序注册表函数的指针。

fpCloseKey

指向 CloseKey 后台处理程序注册表函数的指针。

fpDeleteKey

指向 DeleteKey 后台处理程序注册表函数的指针。

fpEnumKey

指向 EnumKey 后台处理程序注册表函数的指针。

fpQueryInfoKey

指向 QueryInfoKey 后台处理程序注册表函数的指针。

fpSetValue

指向 SetValue 后台处理程序注册表函数的指针。

fpDeleteValue

指向 DeleteValue 后台处理程序注册表函数的指针。

fpEnumValue

指向 EnumValue 后台处理程序注册表函数的指针。

fpQueryValue

指向 QueryValue 后台处理程序注册表函数的指针。

注解

MONITORREG 结构的地址在 MONITORINIT 结构中提供,该结构将传递给打印监视器的 InitializePrintMonitor2 函数。

存储端口配置信息时,打印监视器不得显式调用 Win32 注册表 API 或群集注册表 API。

后台处理程序包含注册表的副本。 请勿使用 Win32 注册表 API 获取后台处理程序实际使用的值。 使用下面列出的后台处理程序注册表函数,其指针包含在 MONITORREG 结构中。

相反,它们必须调用等效的后台处理程序注册表函数。 MONITORREG 结构提供这些函数的地址。 下表列出了每个后台处理程序注册表函数及其等效的群集注册表函数。

后台处理程序注册表函数 等效的群集注册表函数
CreateKey ClusterRegCreateKey
OpenKey ClusterRegOpenKey
CloseKey ClusterRegCloseKey
DeleteKey ClusterRegDeleteKey
EnumKey ClusterRegEnumKey
QueryInfoKey ClusterRegQueryInfoKey
SetValue ClusterRegSetValue
DeleteValue ClusterRegDeleteValue
EnumValue ClusterRegEnumValue
QueryValue ClusterRegQueryValue

这些后台处理程序函数的输入和输出参数与 clusapi.h 标头中等效的群集注册表函数的参数匹配,但有以下例外情况:

  • 每个后台处理程序注册表函数都需要 一个 hSpooler 输入参数。 这是在 MONITORINIT 结构中接收的后台处理程序句柄。

  • 后台处理程序注册表函数使用 HANDLE 和 PHANDLE 参数类型,而不是群集注册表函数使用的 HKEY 和 PHKEY 类型。 监视器接收 MONITORINIT 结构的 hckRegistryRoot 成员中根注册表位置的句柄。

要求

要求
Header winsplp.h (包括 Winsplp.h)

另请参阅

InitializePrintMonitor2

MONITORINIT