Make your own free website on

[an error occurred while processing this directive]
'Create a new project, add a module to it
'Add a command button to Form1
'In the form
Private Sub Form_Load()
    'KPD-Team 1999
    'Subclass this form
    HookForm Me
    'Register this form as a Clipboardviewer
    SetClipboardViewer Me.hwnd
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'Unhook the form
    UnHookForm Me
End Sub
Private Sub Command1_Click()
    'Change the clipboard
    Clipboard.SetText "Hello !"
End Sub

'In a module
'These routines are explained in our subclassing tutorial.
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function SetClipboardViewer Lib "user32" (ByVal hwnd As Long) As Long
Public Const WM_DRAWCLIPBOARD = &H308
Public Const GWL_WNDPROC = (-4)
Dim PrevProc As Long
Public Sub HookForm(F As Form)
    PrevProc = SetWindowLong(F.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
Public Sub UnHookForm(F As Form)
    SetWindowLong F.hwnd, GWL_WNDPROC, PrevProc
End Sub
Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    WindowProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)
        MsgBox "Clipboard changed ..."
    End If
End Function

Copyright © 1998-2000, The KPD-Team.
Send mail to with comments about this web site.
This site is located at