Thanks for everyones comments. I was finally able to get it to work by using the MQCONNX structure. My complete method is as follows:
Private Function OpenListenQueue(ByVal sQueue As String, _
ByVal sQueueManager As String, _
ByVal sHostName As String, _
ByVal lOptions As Long) _
As Boolean
Dim lCompCode As Long ' Completion code
Dim lReason As Long ' lReason code
Dim od As MQOD ' Object descriptor
Dim co As MQCNOCD
sQueueManager = Trim(sQueueManager & ""

sHostName = Trim(sHostName & ""

If sHostName = "" Then sHostName = "127.0.0.1(1414)" 'Localhost on port 1414
If gHconListen = 0 Then
MQCNOCD_DEFAULTS co
co.ConnectOpts.Options = MQCNO_NONE
co.ChannelDef.ChannelName = "SYSTEM.DEF.SVRCONN"
co.ChannelDef.ConnectionName = sHostName
MQCONNXAny sQueueManager, co, gHconListen, lCompCode, lReason
'MQCONN sQueueManager, gHconListen, lCompCode, lReason
If lCompCode = MQCC_FAILED Then
Beep
If lCompCode = 2 And lReason = 2059 Then
SetFormMessage "Error: CompCode = " & lCompCode & "; ReasonCode = " & lReason & vbCrLf & "Queue Manager not available"
Else
SetFormMessage "Error: CompCode = " & lCompCode & "; ReasonCode = " & lReason
End If
OpenListenQueue = False
Exit Function
End If
End If
' Open the queue specified in the Queue textbox if the connect was successful
If gHconListen Then
MQOD_DEFAULTS od
od.ObjectName = sQueue
sQueueManager = Trim(sQueueManager & ""

If sQueueManager <> "" Then od.ObjectQMgrName = sQueueManager
MQOPEN gHconListen, od, lOptions, gHobjListen, lCompCode, lReason
If lCompCode <> MQCC_OK Then
Beep
If lReason = 2085 Then
SetFormMessage "HINT: Check the spelling of the Queue name, which is Case-Sensitive."
ElseIf lReason = 2087 Then
SetFormMessage "HINT: Check the spelling of the Queue Manager name, which is Case-Sensitive."
Else
SetFormMessage "Unable to open queue. Reason code: " & lReason
End If
OpenListenQueue = False
Else
OpenListenQueue = True
SetFormMessage "Queue opened successfully"
End If
End If
End Function