Я пытаюсь получить доступ к стороннему COM-серверу из Powerbuilder. Я могу создать экземпляр объекта, но всякий раз, когда я пытаюсь вызвать метод или свойство объекта, я получаю ошибку 36: «не найдено имя, обращающееся к внешнему объекту».
OLEObject PNSession
PNSession = CREATE OLEObject
ll_status = PNSession.ConnectToNewObject("PNSrv9.PNSession")
if ll_status = 0 then
// Set the session printer
try
PNSession.SetSessionPrinter('TIFF Image Printer 9.0', 1, g_pfapp.null_string, False)
catch (oleruntimeerror lole_error2)
messagebox('Set Error', lole_error2.description)
end try
// Turn job tracking on
PNSession.TrackingOn = True
end if
Вызов ConnectToNewObject выполняется успешно, и я вижу COM-сервер в диспетчере задач, но последующие вызовы не выполняются. Вышеприведенное выглядит корректно на основе всех примеров кода автоматизации COM для Word, Excel, на которые я смотрел.
COM-сервер является COM-сервером C ++ ATL, а не COM-объектом .NET, если это имеет какое-либо значение.
У кого-нибудь есть идеи, почему это не работает или чего мне не хватает?
Спасибо.