Я только что выяснил, что объявление правильное, и был особый способ, которым его нужно было вызвать - в основном вам нужно передать строку как ByVal - это просто случайно работало, пока я пытался комбинировать различные вещи. Спасибо всем за их вклад. Вот вызов, если объявлен как sub.
UrlMkSetSessionOption URLMON_OPTION_USERAGENT, ByVal strUA, Len(strUA), 0
Надеюсь, это кому-нибудь пригодится - когда вы вызываете второй аргумент без «ByVal strUA» и просто передаете «strUA», внутренняя функция должна принять ByRef, что означает, что она пытается использовать переменную, которую мы ей передали ( ANSI Visual Basic 6.0 STRING), и, конечно, когда он это делает, он оказывается таким же бессмысленным, как тип string , который использует функция C, не является типом строки ANSI Visual Basic.
Таким образом, передавая его как ByVal, он просто передает его по значению (не по ссылке) и затем может использовать свою собственную комбинацию переменная / тип данных, которая совместима с используемым типом строки. Надеюсь, это кому-нибудь поможет.