Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > Как предотвратить переход по ссылке


Автор: lemax 4.6.2008, 14:21
Код

#define DISPID_BEFORENAVIGATE     100   // this is sent before navigation to give a chance to abort

Это значит: Событие BEFORENAVIGATE посылается перед началом навигации с целью возможности сбросить(отменить).

Вопрос:
1)Что отменить?
2)И как это отменяется. Надо return не S_OK или как?

Автор: lemax 5.6.2008, 19:29
Вопрос по умнее (для меня)

Если в MSDN написанно http://msdn.microsoft.com/en-us/library/aa768288(VS.85).aspx: 

Код

Syntax

    void NewWindow2(      
        IDispatch **ppDisp,
        VARIANT_BOOL *Cancel
    );

Parameters

    ppDisp
        [in, out] An interface pointer that, optionally, receives the IDispatch interface pointer of a new WebBrowser object or InternetExplorer object. 
    Cancel
        [in, out] A VARIANT_BOOL value that determines whether the current navigation should be canceled.

        VARIANT_TRUE
            Cancel the navigation.
        VARIANT_FALSE
            Do not cancel the navigation.


А я пользуюсь функцией:

Код

HRESULT Invoke(  
  DISPID  dispIdMember,      
  REFIID  riid,              
  LCID  lcid,                
  WORD  wFlags,              
  DISPPARAMS FAR*  pDispParams,  
  VARIANT FAR*  pVarResult,  
  EXCEPINFO FAR*  pExcepInfo,  
  unsigned int FAR*  puArgErr  
);


то как можно получать и передавать значения для IDispatch **ppDisp и VARIANT_BOOL *Cancel?

Какое именно свойство надо использовать для Cancel? Это *(pDispParams->rgvarg[0].pboolVal); или Это pDispParams->rgvarg[0].boolVal; 

Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)