Hi,
I've searched Google on this but couldn't find an easy way to fix it. I'm getting the famous error on my control, which I have upgraded from VB6:
'AddressOf' expression cannot be converted to 'Integer' because 'Integer' is not a delegate type.
The function it is referring to is:
MainCtrlProc is:
How do I upgrade correcltly?
Also:
Would creating a DLL in VB6 that had a function 'ObjPtr_', which did the following:
work?
Please reply!
I've searched Google on this but couldn't find an easy way to fix it. I'm getting the famous error on my control, which I have upgraded from VB6:
'AddressOf' expression cannot be converted to 'Integer' because 'Integer' is not a delegate type.
The function it is referring to is:
VB.NET:
m_OrgCtrlProc = SetWindowLongPtr(Handle.ToInt32, GWLP_WNDPROC, AddressOf MainCtrlProc)
MainCtrlProc is:
VB.NET:
Public Function MainCtrlProc(ByVal hwnd As Integer, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
'This function is called when messages for the control arrive
'hWnd is the handle to the HookControl the message is meant for
'get pointer to correct instance of user control that
'we previously stored in the UserData section
pUserData = GetWindowLongPtr(hwnd, GWLP_USERDATA)
'UPGRADE_WARNING: Couldn't resolve default property of object ctlRefToCtrl. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1037"'
CopyMemory(ctlRefToCtrl, pUserData, 4)
'call control procedure which resides in control itself
MainCtrlProc = ctlRefToCtrl.CtrlProc(hwnd, Msg, wParam, lParam)
'clean up
'UPGRADE_WARNING: Couldn't resolve default property of object ctlRefToCtrl. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1037"'
CopyMemory(ctlRefToCtrl, 0, 4)
'UPGRADE_NOTE: Object ctlRefToCtrl may not be destroyed until it is garbage collected. Click for more: 'ms-help://MS.VSCC.2003/commoner/redir/redirect.htm?keyword="vbup1029"'
ctlRefToCtrl = Nothing
End Function
How do I upgrade correcltly?
Also:
VB.NET:
Name 'ObjPtr' is not declared.
Would creating a DLL in VB6 that had a function 'ObjPtr_', which did the following:
VB.NET:
ObjPtr_ = ObjPtr([I]object[/I])
work?
Please reply!