次の方法で共有


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 を含む)

こちらもご覧ください

InitializePrintMonitor2

MONITORINIT