Home » Questions » Computers [ Ask a new question ]

How to use a mutex in Visual Basic

How to use a mutex in Visual Basic

"I have imported the kernel32 library. So, I have the createMutex function available but I am not quite sure of the various parameters and return values.

This is classic Visual Basic, not Visual Basic.NET but I can probably work with either language in the form of an answer."

Asked by: Guest | Views: 333
Total answers/comments: 3
Guest [Entry]

"The VB code looks something like this:

hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)

The first parameter is a pointer to an SECURITY_ATTRIBUTES structure. If you don't know what it is, you don't need it. Pass NULL (0).

The second parameter is TRUE (non-zero, or 1) if the calling thread should take ownership of the mutex. FALSE otherwise.

The third parameter is the mutex name and may be NULL (0), as shown. If you need a named mutex, pass the name (anything unique) in. Not sure whether the VB wrapper marshals the length-prefixed VB string type (BSTR) over to a null-terminated Ascii/Unicode string if not, you'll need to do that and numerous examples are out there.

Good luck!"
Guest [Entry]

"The VB code looks something like this:

hMutex = CreateMutex(ByVal 0&, 1, ByVal 0&)

The first parameter is a pointer to an SECURITY_ATTRIBUTES structure. If you don't know what it is, you don't need it. Pass NULL (0).

The second parameter is TRUE (non-zero, or 1) if the calling thread should take ownership of the mutex. FALSE otherwise.

The third parameter is the mutex name and may be NULL (0), as shown. If you need a named mutex, pass the name (anything unique) in. Not sure whether the VB wrapper marshals the length-prefixed VB string type (BSTR) over to a null-terminated Ascii/Unicode string if not, you'll need to do that and numerous examples are out there.

Good luck!"
Guest [Entry]

"Well, based on the documentation it looks like:

Security attributes (can pass null)
Whether it's initially owned (can pass false)
The name of it

HTH"