/* $Id: advapi32.h,v 1.8 2000-03-03 11:14:58 sandervl Exp $ */

/*
 * Win32 advanced API functions for OS/2
 *
 * 1998/06/12
 *
 * Copyright 1998 Sander van Leeuwen
 * Copyright 1998 Patrick Haller
 *
 *
 * Project Odin Software License can be found in LICENSE.TXT
 *
 */

#ifndef __ADVAPI32_H__
#define __ADVAPI32_H__

// IsTextUnicode
#define IS_TEXT_UNICODE_ASCII16               0x0001
#define IS_TEXT_UNICODE_REVERSE_ASCII16       0x0010

#define IS_TEXT_UNICODE_STATISTICS            0x0002
#define IS_TEXT_UNICODE_REVERSE_STATISTICS    0x0020

#define IS_TEXT_UNICODE_CONTROLS              0x0004
#define IS_TEXT_UNICODE_REVERSE_CONTROLS      0x0040

#define IS_TEXT_UNICODE_SIGNATURE             0x0008
#define IS_TEXT_UNICODE_REVERSE_SIGNATURE     0x0080

#define IS_TEXT_UNICODE_ILLEGAL_CHARS         0x0100
#define IS_TEXT_UNICODE_ODD_LENGTH            0x0200
#define IS_TEXT_UNICODE_DBCS_LEADBYTE         0x0400
#define IS_TEXT_UNICODE_NULL_BYTES            0x1000

#define IS_TEXT_UNICODE_UNICODE_MASK          0x000F
#define IS_TEXT_UNICODE_REVERSE_MASK          0x00F0
#define IS_TEXT_UNICODE_NOT_UNICODE_MASK      0x0F00
#define IS_TEXT_UNICODE_NOT_ASCII_MASK        0xF000


/*****************************************************************************
 * Prototypes                                                                *
 *****************************************************************************/

LONG      ODIN_INTERNAL ODIN_RegConnectRegistryA(LPCSTR,HKEY,LPHKEY);
LONG      ODIN_INTERNAL ODIN_RegConnectRegistryW(LPCWSTR,HKEY,LPHKEY);
LONG      ODIN_INTERNAL ODIN_RegEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPSTR,LPDWORD,LPFILETIME);
LONG      ODIN_INTERNAL ODIN_RegEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPWSTR,LPDWORD,LPFILETIME);
LONG      ODIN_INTERNAL ODIN_RegGetKeySecurity(HKEY,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,LPDWORD);
LONG      ODIN_INTERNAL ODIN_RegLoadKeyA(HKEY,LPCSTR,LPCSTR);
LONG      ODIN_INTERNAL ODIN_RegLoadKeyW(HKEY,LPCWSTR,LPCWSTR);
LONG      ODIN_INTERNAL ODIN_RegNotifyChangeKeyValue(HKEY,BOOL,DWORD,HANDLE,BOOL);
LONG      ODIN_INTERNAL ODIN_RegOpenKeyExW(HKEY,LPCWSTR,DWORD,REGSAM,LPHKEY);
LONG      ODIN_INTERNAL ODIN_RegOpenKeyExA(HKEY,LPCSTR,DWORD,REGSAM,LPHKEY);
LONG      ODIN_INTERNAL ODIN_RegQueryInfoKeyW(HKEY,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPFILETIME);
LONG      ODIN_INTERNAL ODIN_RegQueryInfoKeyA(HKEY,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPFILETIME);
LONG      ODIN_INTERNAL ODIN_RegReplaceKeyA(HKEY,LPCSTR,LPCSTR,LPCSTR);
LONG      ODIN_INTERNAL ODIN_RegReplaceKeyW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR);
LONG      ODIN_INTERNAL ODIN_RegRestoreKeyA(HKEY,LPCSTR,DWORD);
LONG      ODIN_INTERNAL ODIN_RegRestoreKeyW(HKEY,LPCWSTR,DWORD);
LONG      ODIN_INTERNAL ODIN_RegUnLoadKeyA(HKEY,LPCSTR);
LONG      ODIN_INTERNAL ODIN_RegUnLoadKeyW(HKEY,LPCWSTR);
LONG      ODIN_INTERNAL ODIN_RegCloseKey(HKEY);
LONG      ODIN_INTERNAL ODIN_RegFlushKey(HKEY);
LONG      ODIN_INTERNAL ODIN_RegCreateKeyA(HKEY,LPCSTR,LPHKEY);
LONG      ODIN_INTERNAL ODIN_RegCreateKeyW(HKEY,LPCWSTR,LPHKEY);
LONG      ODIN_INTERNAL ODIN_RegDeleteKeyA(HKEY,LPCSTR);
LONG      ODIN_INTERNAL ODIN_RegDeleteKeyW(HKEY,LPWSTR);
LONG      ODIN_INTERNAL ODIN_RegDeleteValueA(HKEY,LPSTR);
LONG      ODIN_INTERNAL ODIN_RegDeleteValueW(HKEY,LPWSTR);
LONG      ODIN_INTERNAL ODIN_RegEnumKeyA(HKEY,DWORD,LPSTR,DWORD);
LONG      ODIN_INTERNAL ODIN_RegEnumKeyW(HKEY,DWORD,LPWSTR,DWORD);
LONG      ODIN_INTERNAL ODIN_RegEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
LONG      ODIN_INTERNAL ODIN_RegEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
LONG      ODIN_INTERNAL ODIN_RegOpenKeyA(HKEY,LPCSTR,LPHKEY);
LONG      ODIN_INTERNAL ODIN_RegOpenKeyW(HKEY,LPCWSTR,LPHKEY);
LONG      ODIN_INTERNAL ODIN_RegQueryValueA(HKEY,LPCSTR,LPSTR,LPLONG);
LONG      ODIN_INTERNAL ODIN_RegQueryValueW(HKEY,LPCWSTR,LPWSTR,LPLONG);
LONG      ODIN_INTERNAL ODIN_RegQueryValueExA(HKEY,LPSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
LONG      ODIN_INTERNAL ODIN_RegQueryValueExW(HKEY,LPWSTR,LPDWORD,LPDWORD,LPBYTE,LPDWORD);
LONG      ODIN_INTERNAL ODIN_RegSetValueA(HKEY,LPCSTR,DWORD,LPCSTR,DWORD);
LONG      ODIN_INTERNAL ODIN_RegSetValueW(HKEY,LPCWSTR,DWORD,LPCWSTR,DWORD);
LONG      ODIN_INTERNAL ODIN_RegSetValueExA(HKEY,LPSTR,DWORD,DWORD,LPBYTE,DWORD);
LONG      ODIN_INTERNAL ODIN_RegSetValueExW(HKEY,LPWSTR,DWORD,DWORD,LPBYTE,DWORD);
LONG      ODIN_INTERNAL ODIN_RegCreateKeyExA(HKEY,LPCSTR,DWORD,LPSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,LPDWORD);
LONG      ODIN_INTERNAL ODIN_RegCreateKeyExW(HKEY,LPCWSTR,DWORD,LPWSTR,DWORD,REGSAM,LPSECURITY_ATTRIBUTES,PHKEY,LPDWORD);

#endif
