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 構造体のアドレスは、印刷モニターの InitializePrintMonitor2 関数に渡される MONITORINIT 構造体で提供されます。
ポート構成情報を格納する場合、印刷モニターは 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 構造体で受け取ったスプーラー ハンドルです。
スプーラー レジストリ関数では、クラスター レジストリ関数で使用される HKEY 型と PHKEY 型ではなく、HANDLE パラメーター型と PHANDLE パラメーター型が使用されます。 モニターは、MONITORINIT 構造体の hckRegistryRoot メンバー内のルート レジストリの場所のハンドルを受け取ります。
要件
要件 | 値 |
---|---|
Header | winsplp.h (Winsplp.h を含む) |