home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / device_inf2048792192007.psc / iSubclass.cls < prev    next >
Text File  |  2007-02-18  |  8KB  |  263 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4.   Persistable = 0  'NotPersistable
  5.   DataBindingBehavior = 0  'vbNone
  6.   DataSourceBehavior  = 0  'vbNone
  7.   MTSTransactionMode  = 0  'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "iSubclass"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. '*************************************************************************************************
  15. '* iSubclass - cSubclass' implementation interface class + enumerations
  16. '*
  17. '* Paul_Caton@hotmail.com
  18. '* Copyright free, use and abuse as you see fit.
  19. '*
  20. '* v1.0 The original..................................................................... 20060322
  21. '*************************************************************************************************
  22.  
  23. Option Explicit
  24.  
  25. '-cSublass public declarations--------------------------------------------------------------------
  26. Public Enum eMsgWhen                                                        'When to callback
  27.   MSG_BEFORE = 1                                                            'Callback before the original WndProc
  28.   MSG_AFTER = 2                                                             'Callback after the original WndProc
  29.   MSG_BEFORE_AFTER = MSG_BEFORE Or MSG_AFTER                                'Callback before and after the original WndProc
  30. End Enum
  31.  
  32. 'Windows message values
  33. Public Enum eMsg
  34.   ALL_MESSAGES = -1
  35.   WM_NULL = &H0
  36.   WM_CREATE = &H1
  37.   WM_DESTROY = &H2
  38.   WM_MOVE = &H3
  39.   WM_SIZE = &H5
  40.   WM_ACTIVATE = &H6
  41.   WM_SETFOCUS = &H7
  42.   WM_KILLFOCUS = &H8
  43.   WM_ENABLE = &HA
  44.   WM_SETREDRAW = &HB
  45.   WM_SETTEXT = &HC
  46.   WM_GETTEXT = &HD
  47.   WM_GETTEXTLENGTH = &HE
  48.   WM_PAINT = &HF
  49.   WM_CLOSE = &H10
  50.   WM_QUERYENDSESSION = &H11
  51.   WM_QUIT = &H12
  52.   WM_QUERYOPEN = &H13
  53.   WM_ERASEBKGND = &H14
  54.   WM_SYSCOLORCHANGE = &H15
  55.   WM_ENDSESSION = &H16
  56.   WM_SHOWWINDOW = &H18
  57.   WM_WININICHANGE = &H1A
  58.   WM_SETTINGCHANGE = &H1A
  59.   WM_DEVMODECHANGE = &H1B
  60.   WM_ACTIVATEAPP = &H1C
  61.   WM_FONTCHANGE = &H1D
  62.   WM_TIMECHANGE = &H1E
  63.   WM_CANCELMODE = &H1F
  64.   WM_SETCURSOR = &H20
  65.   WM_MOUSEACTIVATE = &H21
  66.   WM_CHILDACTIVATE = &H22
  67.   WM_QUEUESYNC = &H23
  68.   WM_GETMINMAXINFO = &H24
  69.   WM_PAINTICON = &H26
  70.   WM_ICONERASEBKGND = &H27
  71.   WM_NEXTDLGCTL = &H28
  72.   WM_SPOOLERSTATUS = &H2A
  73.   WM_DRAWITEM = &H2B
  74.   WM_MEASUREITEM = &H2C
  75.   WM_DELETEITEM = &H2D
  76.   WM_VKEYTOITEM = &H2E
  77.   WM_CHARTOITEM = &H2F
  78.   WM_SETFONT = &H30
  79.   WM_GETFONT = &H31
  80.   WM_SETHOTKEY = &H32
  81.   WM_GETHOTKEY = &H33
  82.   WM_QUERYDRAGICON = &H37
  83.   WM_COMPAREITEM = &H39
  84.   WM_GETOBJECT = &H3D
  85.   WM_COMPACTING = &H41
  86.   WM_WINDOWPOSCHANGING = &H46
  87.   WM_WINDOWPOSCHANGED = &H47
  88.   WM_POWER = &H48
  89.   WM_COPYDATA = &H4A
  90.   WM_CANCELJOURNAL = &H4B
  91.   WM_NOTIFY = &H4E
  92.   WM_INPUTLANGCHANGEREQUEST = &H50
  93.   WM_INPUTLANGCHANGE = &H51
  94.   WM_TCARD = &H52
  95.   WM_HELP = &H53
  96.   WM_USERCHANGED = &H54
  97.   WM_NOTIFYFORMAT = &H55
  98.   WM_CONTEXTMENU = &H7B
  99.   WM_STYLECHANGING = &H7C
  100.   WM_STYLECHANGED = &H7D
  101.   WM_DISPLAYCHANGE = &H7E
  102.   WM_GETICON = &H7F
  103.   WM_SETICON = &H80
  104.   WM_NCCREATE = &H81
  105.   WM_NCDESTROY = &H82
  106.   WM_NCCALCSIZE = &H83
  107.   WM_NCHITTEST = &H84
  108.   WM_NCPAINT = &H85
  109.   WM_NCACTIVATE = &H86
  110.   WM_GETDLGCODE = &H87
  111.   WM_SYNCPAINT = &H88
  112.   WM_NCMOUSEMOVE = &HA0
  113.   WM_NCLBUTTONDOWN = &HA1
  114.   WM_NCLBUTTONUP = &HA2
  115.   WM_NCLBUTTONDBLCLK = &HA3
  116.   WM_NCRBUTTONDOWN = &HA4
  117.   WM_NCRBUTTONUP = &HA5
  118.   WM_NCRBUTTONDBLCLK = &HA6
  119.   WM_NCMBUTTONDOWN = &HA7
  120.   WM_NCMBUTTONUP = &HA8
  121.   WM_NCMBUTTONDBLCLK = &HA9
  122.   WM_KEYFIRST = &H100
  123.   WM_KEYDOWN = &H100
  124.   WM_KEYUP = &H101
  125.   WM_CHAR = &H102
  126.   WM_DEADCHAR = &H103
  127.   WM_SYSKEYDOWN = &H104
  128.   WM_SYSKEYUP = &H105
  129.   WM_SYSCHAR = &H106
  130.   WM_SYSDEADCHAR = &H107
  131.   WM_KEYLAST = &H108
  132.   WM_IME_STARTCOMPOSITION = &H10D
  133.   WM_IME_ENDCOMPOSITION = &H10E
  134.   WM_IME_COMPOSITION = &H10F
  135.   WM_IME_KEYLAST = &H10F
  136.   WM_INITDIALOG = &H110
  137.   WM_COMMAND = &H111
  138.   WM_SYSCOMMAND = &H112
  139.   WM_TIMER = &H113
  140.   WM_HSCROLL = &H114
  141.   WM_VSCROLL = &H115
  142.   WM_INITMENU = &H116
  143.   WM_INITMENUPOPUP = &H117
  144.   WM_MENUSELECT = &H11F
  145.   WM_MENUCHAR = &H120
  146.   WM_ENTERIDLE = &H121
  147.   WM_MENURBUTTONUP = &H122
  148.   WM_MENUDRAG = &H123
  149.   WM_MENUGETOBJECT = &H124
  150.   WM_UNINITMENUPOPUP = &H125
  151.   WM_MENUCOMMAND = &H126
  152.   WM_CTLCOLORMSGBOX = &H132
  153.   WM_CTLCOLOREDIT = &H133
  154.   WM_CTLCOLORLISTBOX = &H134
  155.   WM_CTLCOLORBTN = &H135
  156.   WM_CTLCOLORDLG = &H136
  157.   WM_CTLCOLORSCROLLBAR = &H137
  158.   WM_CTLCOLORSTATIC = &H138
  159.   WM_MOUSEFIRST = &H200
  160.   WM_MOUSEMOVE = &H200
  161.   WM_LBUTTONDOWN = &H201
  162.   WM_LBUTTONUP = &H202
  163.   WM_LBUTTONDBLCLK = &H203
  164.   WM_RBUTTONDOWN = &H204
  165.   WM_RBUTTONUP = &H205
  166.   WM_RBUTTONDBLCLK = &H206
  167.   WM_MBUTTONDOWN = &H207
  168.   WM_MBUTTONUP = &H208
  169.   WM_MBUTTONDBLCLK = &H209
  170.   WM_MOUSEWHEEL = &H20A
  171.   WM_PARENTNOTIFY = &H210
  172.   WM_ENTERMENULOOP = &H211
  173.   WM_EXITMENULOOP = &H212
  174.   WM_NEXTMENU = &H213
  175.   WM_SIZING = &H214
  176.   WM_CAPTURECHANGED = &H215
  177.   WM_MOVING = &H216
  178.   WM_DEVICECHANGE = &H219
  179.   WM_MDICREATE = &H220
  180.   WM_MDIDESTROY = &H221
  181.   WM_MDIACTIVATE = &H222
  182.   WM_MDIRESTORE = &H223
  183.   WM_MDINEXT = &H224
  184.   WM_MDIMAXIMIZE = &H225
  185.   WM_MDITILE = &H226
  186.   WM_MDICASCADE = &H227
  187.   WM_MDIICONARRANGE = &H228
  188.   WM_MDIGETACTIVE = &H229
  189.   WM_MDISETMENU = &H230
  190.   WM_ENTERSIZEMOVE = &H231
  191.   WM_EXITSIZEMOVE = &H232
  192.   WM_DROPFILES = &H233
  193.   WM_MDIREFRESHMENU = &H234
  194.   WM_IME_SETCONTEXT = &H281
  195.   WM_IME_NOTIFY = &H282
  196.   WM_IME_CONTROL = &H283
  197.   WM_IME_COMPOSITIONFULL = &H284
  198.   WM_IME_SELECT = &H285
  199.   WM_IME_CHAR = &H286
  200.   WM_IME_REQUEST = &H288
  201.   WM_IME_KEYDOWN = &H290
  202.   WM_IME_KEYUP = &H291
  203.   WM_MOUSEHOVER = &H2A1
  204.   WM_MOUSELEAVE = &H2A3
  205.   WM_CUT = &H300
  206.   WM_COPY = &H301
  207.   WM_PASTE = &H302
  208.   WM_CLEAR = &H303
  209.   WM_UNDO = &H304
  210.   WM_RENDERFORMAT = &H305
  211.   WM_RENDERALLFORMATS = &H306
  212.   WM_DESTROYCLIPBOARD = &H307
  213.   WM_DRAWCLIPBOARD = &H308
  214.   WM_PAINTCLIPBOARD = &H309
  215.   WM_VSCROLLCLIPBOARD = &H30A
  216.   WM_SIZECLIPBOARD = &H30B
  217.   WM_ASKCBFORMATNAME = &H30C
  218.   WM_CHANGECBCHAIN = &H30D
  219.   WM_HSCROLLCLIPBOARD = &H30E
  220.   WM_QUERYNEWPALETTE = &H30F
  221.   WM_PALETTEISCHANGING = &H310
  222.   WM_PALETTECHANGED = &H311
  223.   WM_HOTKEY = &H312
  224.   WM_PRINT = &H317
  225.   WM_PRINTCLIENT = &H318
  226.   WM_THEMECHANGED = &H31A
  227.   WM_HANDHELDFIRST = &H358
  228.   WM_HANDHELDLAST = &H35F
  229.   WM_AFXFIRST = &H360
  230.   WM_AFXLAST = &H37F
  231.   WM_PENWINFIRST = &H380
  232.   WM_PENWINLAST = &H38F
  233.   WM_USER = &H400
  234.   WM_APP = &H8000
  235. End Enum
  236.  
  237. '-Subclass callback definition--------------------------------------------------------------------
  238. Sub WndProc(ByVal bBefore As Boolean, _
  239.             ByRef bHandled As Boolean, _
  240.             ByRef lReturn As Long, _
  241.             ByVal lng_hWnd As Long, _
  242.             ByVal uMsg As eMsg, _
  243.             ByVal wParam As Long, _
  244.             ByVal lParam As Long, _
  245.             ByRef lParamUser As Long)
  246. '*************************************************************************************************
  247. '* bBefore    - Indicates whether the callback is before or after the original WndProc. Usually
  248. '*              you will know unless the callback for the uMsg value is specified as
  249. '*              MSG_BEFORE_AFTER (both before and after the original WndProc).
  250. '* bHandled   - In a before original WndProc callback, setting bHandled to True will prevent the
  251. '*              message being passed to the original WndProc and (if set to do so) the after
  252. '*              original WndProc callback.
  253. '* lReturn    - WndProc return value. Set as per the MSDN documentation for the message value,
  254. '*              and/or, in an after the original WndProc callback, act on the return value as set
  255. '*              by the original WndProc.
  256. '* hWnd       - Window handle.
  257. '* uMsg       - Message value.
  258. '* wParam     - Message related data.
  259. '* lParam     - Message related data.
  260. '* lParamUser - User-defined callback parameter
  261. '*************************************************************************************************
  262. End Sub
  263.