FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

dbt.d

 
Post new topic   Reply to topic     Forum Index -> Bindings
View previous topic :: View next topic  
Author Message
Vladimir



Joined: 09 Apr 2006
Posts: 13
Location: Moscow, Russia

PostPosted: Sun Apr 09, 2006 5:45 pm    Post subject: dbt.d Reply with quote

Hi, Did not found where to register to get write access to svn, so published the code here.
Kind regards,
Vladimir

Code:
/***********************************************************************\
*                                  dbt.d                                *
*                                                                       *
*                       Windows API header module                       *
*                                                                       *
*                 Translated from MinGW Windows headers                 *
*                           by Vladimir Vlasov                          *
*                                                                       *
*                       Placed into public domain                       *
\***********************************************************************/
module win32.dbt;

private import win32.windef, win32.w32api;

enum : DWORD {
  DBT_NO_DISK_SPACE           = 0x47,
  DBT_CONFIGMGPRIVATE         = 0x7FFF,
  DBT_DEVICEARRIVAL           = 0x8000,
  DBT_DEVICEQUERYREMOVE       = 0x8001,
  DBT_DEVICEQUERYREMOVEFAILED = 0x8002,
  DBT_DEVICEREMOVEPENDING     = 0x8003,
  DBT_DEVICEREMOVECOMPLETE    = 0x8004,
  DBT_DEVICETYPESPECIFIC      = 0x8005,
  DBT_DEVTYP_OEM              = 0,
  DBT_DEVTYP_DEVNODE          = 1,
  DBT_DEVTYP_VOLUME           = 2,
  DBT_DEVTYP_PORT             = 3,
  DBT_DEVTYP_NET              = 4
}

static if (_WIN32_WINDOWS >= 0x040A) {
  enum : DWORD {
    DBT_DEVTYP_DEVICEINTERFACE = 5,
    DBT_DEVTYP_HANDLE          = 6
  }
}

enum : DWORD {
  DBT_APPYBEGIN,
  DBT_APPYEND,
  DBT_DEVNODES_CHANGED     = 7,
  DBT_QUERYCHANGECONFIG    = 0x17,
  DBT_CONFIGCHANGED        = 0x18,
  DBT_CONFIGCHANGECANCELED = 0x19,
  DBT_MONITORCHANGE        = 0x1B,
  DBT_SHELLLOGGEDON        = 32,
  DBT_CONFIGMGAPI32        = 34,
  DBT_VXDINITCOMPLETE      = 35,
  DBT_VOLLOCKQUERYLOCK     = 0x8041,
  DBT_VOLLOCKLOCKTAKEN     = 0x8042,
  DBT_VOLLOCKLOCKFAILED    = 0x8043,
  DBT_VOLLOCKQUERYUNLOCK   = 0x8044,
  DBT_VOLLOCKLOCKRELEASED  = 0x8045,
  DBT_VOLLOCKUNLOCKFAILED  = 0x8046,
  DBT_USERDEFINED          = 0xFFFF
}

enum : WORD {
  DBTF_MEDIA = 1,
  DBTF_NET   = 2
}

/* Also defined in winuser.h */
enum : DWORD {
  BSM_ALLCOMPONENTS      = 0,
  BSM_APPLICATIONS       = 8,
  BSM_ALLDESKTOPS        = 16,
  BSM_INSTALLABLEDRIVERS = 4,
  BSM_NETDRIVER          = 2,
  BSM_VXDS               = 1,
  BSF_FLUSHDISK          = 0x00000004,
  BSF_FORCEIFHUNG        = 0x00000020,
  BSF_IGNORECURRENTTASK  = 0x00000002,
  BSF_NOHANG             = 0x00000008,
  BSF_NOTIMEOUTIFNOTHUNG = 0x00000040,
  BSF_POSTMESSAGE        = 0x00000010,
  BSF_QUERY              = 0x00000001,
  BSF_MSGSRV32ISOK_BIT   = 31,
  BSF_MSGSRV32ISOK       = 0x80000000
}

static if (_WIN32_WINNT >= 0x0500) {
  enum : DWORD {
    BSF_ALLOWSFW          = 0x00000080,
    BSF_SENDNOTIFYMESSAGE = 0x00000100
  }
}

static if (_WIN32_WINNT >= 0x0501) {
  enum : DWORD {
    BSF_LUID        = 0x00000400,
    BSF_RETURNHDESK = 0x00000200
  }
}

struct DEV_BROADCAST_HDR {
   DWORD dbch_size = DEV_BROADCAST_HDR.sizeof;
   DWORD dbch_devicetype;
   DWORD dbch_reserved;
}
alias DEV_BROADCAST_HDR* PDEV_BROADCAST_HDR;

struct DEV_BROADCAST_OEM {
   DWORD dbco_size = DEV_BROADCAST_OEM.sizeof;
   DWORD dbco_devicetype;
   DWORD dbco_reserved;
   DWORD dbco_identifier;
   DWORD dbco_suppfunc;
}
alias DEV_BROADCAST_OEM* PDEV_BROADCAST_OEM;

struct DEV_BROADCAST_PORT_A {
   DWORD dbcp_size = DEV_BROADCAST_PORT_A.sizeof;
   DWORD dbcp_devicetype;
   DWORD dbcp_reserved;
   char _dbcp_name[1];
   char* dbcp_name() { return _dbcp_name.ptr; }
}
alias DEV_BROADCAST_PORT_A* PDEV_BROADCAST_PORT_A;

struct DEV_BROADCAST_PORT_W {
   DWORD dbcp_size = DEV_BROADCAST_PORT_W.sizeof;
   DWORD dbcp_devicetype;
   DWORD dbcp_reserved;
   WCHAR _dbcp_name[1];
  WCHAR* dbcp_name() { return _dbcp_name.ptr; }
}
alias DEV_BROADCAST_PORT_W* PDEV_BROADCAST_PORT_W;

struct DEV_BROADCAST_USERDEFINED {
   DEV_BROADCAST_HDR dbud_dbh;
   char _dbud_szName[1];
  char* dbud_szName() { return _dbud_szName.ptr; }
}

struct DEV_BROADCAST_VOLUME {
   DWORD dbcv_size = DEV_BROADCAST_VOLUME.sizeof;
   DWORD dbcv_devicetype;
   DWORD dbcv_reserved;
   DWORD dbcv_unitmask;
   WORD  dbcv_flags;
}
alias DEV_BROADCAST_VOLUME* PDEV_BROADCAST_VOLUME;

version (Unicode) {
  alias DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT;
} else {
  alias DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT;
}
alias DEV_BROADCAST_PORT* PDEV_BROADCAST_PORT;

static if ((_WIN32_WINDOWS >= 0x0410) || (_WIN32_WINNT >= 0x0500)) {
   struct DEV_BROADCAST_DEVICEINTERFACE_A {
      DWORD dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_A.sizeof;
      DWORD dbcc_devicetype;
      DWORD dbcc_reserved;
      GUID  dbcc_classguid;
      char  _dbcc_name[1];
      char* dbcc_name() { return _dbcc_name.ptr; }
  }
   alias DEV_BROADCAST_DEVICEINTERFACE_A* PDEV_BROADCAST_DEVICEINTERFACE_A;
 
   struct DEV_BROADCAST_DEVICEINTERFACE_W {
      DWORD dbcc_size = DEV_BROADCAST_DEVICEINTERFACE_W.sizeof;
      DWORD dbcc_devicetype;
      DWORD dbcc_reserved;
      GUID  dbcc_classguid;
      WCHAR _dbcc_name[1];
      WCHAR* dbcc_name() { return _dbcc_name.ptr; }
  }
   alias DEV_BROADCAST_DEVICEINTERFACE_W* PDEV_BROADCAST_DEVICEINTERFACE_W;
 
  version (Unicode) {
      alias DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE;
  } else {
      alias DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE;
  }
   alias DEV_BROADCAST_DEVICEINTERFACE* PDEV_BROADCAST_DEVICEINTERFACE;
 
  struct DEV_BROADCAST_HANDLE {
      DWORD  dbch_size = DEV_BROADCAST_HANDLE.sizeof;
      DWORD  dbch_devicetype;
      DWORD  dbch_reserved;
      HANDLE dbch_handle;
      DWORD  dbch_hdevnotify;
      GUID   dbch_eventguid;
      LONG   dbch_nameoffset;
      BYTE   _dbch_data[1];
      BYTE*  dbch_data() { return _dbch_data.ptr; }
   }
   alias DEV_BROADCAST_HANDLE* PDEV_BROADCAST_HANDLE;
}
Back to top
View user's profile Send private message
brad
Site Admin


Joined: 22 Feb 2004
Posts: 490
Location: Atlanta, GA USA

PostPosted: Mon Apr 10, 2006 8:08 am    Post subject: Re: dbt.d Reply with quote

Vladimir wrote:
Hi, Did not found where to register to get write access to svn, so published the code here.


All registered users (in the Forums section) are allowed to commit code to the Bindings project. Just use your same username/password and you should be fine.

BA
Back to top
View user's profile Send private message
Vladimir



Joined: 09 Apr 2006
Posts: 13
Location: Moscow, Russia

PostPosted: Tue Apr 11, 2006 2:47 am    Post subject: Reply with quote

Thank you
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> Bindings All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group