
#DEFINE   Error_Success 0
#DEFINE   Error_BadDB 1
#DEFINE   Error_BadKey 2
#DEFINE   Error_CantOpen 3
#DEFINE   Error_CantRead 4
#DEFINE   Error_CantWrite 5
#DEFINE   Error_OutOfMemory 6
#DEFINE   Error_Invalid_Parameter 7
#DEFINE   Error_Access_Denied 8

#DEFINE   reg_SZ 1                        // string type

#DEFINE   hKey_Classes_Root 1

// necessary types.  Everything in this API is 32-bit.


#DEFINE HKey    Longint
#DEFINE PHKey   *HKey

// API exports from the library

import Longint RegOpenKey(HKey Key, *asciiz SubKey, *HKey Result)  SHELL 1;
import Longint RegCreateKey(HKey Key, *asciiz SubKey,*HKey Result)  SHELL 2;
import Longint RegCloseKey(HKey Key)  SHELL 3;
import Longint RegDeleteKey(HKey Key, *asciiz SubKey)  SHELL 4;
import Longint RegSetValue(HKey Key, *asciiz SubKey, Longint ValType,
  *asciiz Value, Longint cb)  SHELL 5;
import Longint RegQueryValue(HKey Key, *asciiz SubKey, *asciiz Value,
  *Longint cb)  SHELL 6;
import Longint RegEnumKey(HKey Key, Longint index, *asciiz Buffer,
  Longint cb)  SHELL 7;

import Word DragQueryFile(THandle Drop, Word FileIndex, *asciiz FileName,
  Word cb)  SHELL 11;
import Word DragQueryFileInt(THandle Drop, Word FileIndex, int FileName,
  Word cb)  SHELL 11;
import Bool DragQueryPoint(THandle Drop, PPoint Pt)  SHELL 13;
import void DragFinish(THandle Drop) SHELL 12;
import void DragAcceptFiles(HWnd Wnd, Bool Accept) SHELL 9;

import HIcon ExtractIcon(THandle Inst, *asciiz ExeFileName, Word IconIndex)  SHELL 34;

// error values for ShellExecute() beyond the regular WinExec() codes

#DEFINE   se_err_Share 26
#DEFINE   se_err_AssocIncomplete 27
#DEFINE   se_err_DDETimeout 28
#DEFINE   se_err_DDEFail 29
#DEFINE   se_err_DDEBusy 30
#DEFINE   se_err_NoAssoc 31

import THandle ShellExecute(HWnd hWnd, asciiz Operation, asciiz FileName, asciiz Parameters,asciiz
  Directory, word ShowCmd)  SHELL 20;
import THandle FindExecutable(*asciiz FileName, *asciiz Directory, *asciiz Result)  SHELL 21;
