Tentando chamar uma DLL C do VB. Não é possível obter um dos parâmetros funcionando

Tentando configurar uma faixa de energia USB.

Aqui está a documentação:

Initializes the Power USB API.

Name: InitPowerUSB 

Parameters: model:returns the model number(1:basic, 2:digIO, 3:watchdog, 4:Smart), firmware: returns firmware version in ?.? format in a character string (major revision and minor revision) 

Return: >0 if successful. Returns number of PowerUSB devices connected

C++ Example:

if (!m_pwrUSBInit)
{
    int model; char firmware[8];
    if ((ret=InitPowerUSB(&model, firmware)) > 0)
    {
        m_pwrUSBInit = 1;
        m_numDevices = ret;
    }
}

Eu tenho tentado fazer isso funcionar com o meu código VB6 por cerca de uma hora sem sorte. O programa falha, exibe um erro comoBad Calling Dll Convention, type mismatchet cetera.

Aqui está o que eu tenho:

Public Declare Function InitPowerUSB Lib "PwrUSBDll.dll" (ByRef model As Integer, ByVal firmware As String) As Integer

Dim model As Integer
model = 0

Dim firmware As String
firmware = ""

If (InitPowerUSB(model, firmware)) > 0) Then

EndIf

Eu tentei mudar o firmware para matrizes de byte, byref, string, inteiro, longo, etc. Ele simplesmente não parece querer correr.

Alguém sabe de uma solução para este problema? obrigado

questionAnswers(1)

yourAnswerToTheQuestion