Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8231523
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 7, 20262026-06-07T17:31:24+00:00 2026-06-07T17:31:24+00:00

Is there an equivalent to AddressOf in Visual Basic 4? I am attempting to

  • 0

Is there an equivalent to AddressOf in Visual Basic 4?

I am attempting to get some Visual Basic 5/6 code that adds menu items to my form’s system menu working in VB4. Below is the code snippet that will not compile:

'Add Custom Menu To System Menu
Call AppendMenu(GetSystemMenu(Me.hWnd, 0&), MF_SEPARATOR, 0&, vbNullString)
Call AppendMenu(GetSystemMenu(Me.hWnd, 0&), MF_STRING, IDM_SYSTEMTRAY, "Minimize To &System Tray")
Call AppendMenu(GetSystemMenu(Me.hWnd, 0&), MF_STRING, IDM_ABOUT, "&About...")
procOld = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf WindowProc)

Here is the API declarations from the module:

' Win32 API
Public Const MF_SEPARATOR = &H800&
Public Const MF_STRING = &H0&
Public Const GWL_WNDPROC = (-4)
Public Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Public Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public 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
Public Const WM_SYSCOMMAND = &H112

' User Created
Public procOld As Long
Public Const IDM_ABOUT As Long = 1010
Public Const IDM_SYSTEMTRAY As Long = 1011

And finally, the code for WindowProc:

Public Function WindowProc(ByVal hWnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Select Case iMsg
        Case WM_SYSCOMMAND
            Select Case wParam
                Case IDM_ABOUT
                   MsgBox "About goes here..."
                   Exit Function
               Case IDM_SYSTEMTRAY
                   MsgBox "Send to system tray code goes here..."
                   Exit Function
            End Select
    End Select
    ' Pass all messages on to VB and then return the value to windows
    WindowProc = CallWindowProc(procOld, hWnd, iMsg, wParam, lParam)
End Function

Any other pointers or alternate methods of adding items to my form’s system menu would be appreciated too!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-07T17:31:26+00:00Added an answer on June 7, 2026 at 5:31 pm

    From: Xtreme VB Talk: AddressOf work around for vb4

    [Banjo]
    I don’t think that you can without resorting to somesort of outside
    DLL written in C.

    [OnErr0r]
    Matt Curland wrote just such a dll. Allows you to get the address of a class function, even works with vb5/6.

    You can download callback.zip from the above page after registering. As a fallback, you can get the file here: callback.zip

    EDIT: The direct download link has been removed, because it appears that this source code is part of a book by Matt Curland and copyrighted.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Are there equivalent to perl -c syntax check for JavaScript from command? Given that
Is there an equivalent way of achieving what HTML Tidy does to HTML code
Is there an equivalent of the Visual Studio Task List in MS Access? I'd
Is there an equivalent of Apache log4cxx that can be embedded in a distributed
With msvc, is there an equivalent to gcc's __builtin_return_address? I'm looking to find the
Is there equivalent to \Q ... \E in C# Regex? I can't find it.
Is there an equivalent Matlab dot function in numpy? The dot function in Matlab:
Is there an equivalent in SDK 2 to the SDK 1 navigation utilities? I'd
Is there an equivalent to Eclipse's Scrapbook feature in Intellij Idea? (Before I go
Is there an equivalent to the following: header(Content-type: text/xml); I'm using Google Maps with

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.