Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Собственная реализация IDispatch   Найти похожие ветки 

 
Priest ©   (2006-12-27 16:33) [0]

Реализую интерфейс. Вот основные методы


function TPxTest.GetIDsOfNames(const IID: TGUID; Names: Pointer;
 NameCount, LocaleID: Integer; DispIDs: Pointer): HResult;
begin
 Result := S_OK;
 if SameText(PointerToString(Names), "TestMethod") then
   SetDispIDs(DispIDs,-111)
 else
   Result := inherited GetIDsOfNames(IID, Names, NameCount, LocaleID, DispIDs);
end;

function TPxTest.Invoke(DispID: Integer; const IID: TGUID; LocaleID:
 Integer; Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer):
 HResult;
var
S: string;
DispPars:TDispParams;
begin
 Result := S_OK;
 if DispID = -111 then
   begin
    DispPars:=TDispParams(DispPars);
    if DispPars.cArgs = 1 then
       begin
         S:=DispPars.rgvarg^[0].bstrVal;
         S := TestMethod(S);
         SetVarResult(VarResult, S);
       end
     else
       Result := DISP_E_BADPARAMCOUNT;
   end //if DispID = 0 then
 else
   Result := inherited Invoke(DispID, IID, LocaleID, Flags, Params, VarResult, ExcepInfo, ArgErr);
end;


На клиенте происходит вызов

RDS:=CreateOleObject("xServer.MyServer");
S:=Edit1.Text;
Caption:=RDS.PxTestPluggin.TestMethod(S);


Проблема в том, что в Invoke всегда DispPars.cArgs равно 0. В чём проблема?


 
tesseract ©   (2006-12-27 17:03) [1]


>  DispPars:=TDispParams(DispPars);


может

 DispPars:=TDispParams(Params) ?


 
Priest ©   (2006-12-28 09:39) [2]

Точно. Спасибо. Это МоделМейкер Код Эксплорер юзал, он и переименовал все параметры. Причём всё работало. А потом кое что менял и решил переименовать переменную...Вот и результат



Страницы: 1 вся ветка

Форум: "Corba";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.272 c
9-1187083638
Rave4Life
2007-08-14 13:27
2010.08.27
DirectDraw


15-1265588356
Германн
2010-02-08 03:19
2010.08.27
Вопрос для работников частных компаний.


2-1271616095
Б
2010-04-18 22:41
2010.08.27
Как ToolWindow-окну добавить кнопку минимизации?


8-1205755973
DoKi
2008-03-17 15:12
2010.08.27
gпопиксельное освещение


15-1274775765
bss
2010-05-25 12:22
2010.08.27
D2006, не работает "Find declaration" на DevExpress объектах





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский