Q&A

  • TWebBrowser에서 popup사용
function TForm1.WebBrowser1ShowContextMenu(const dwID: Cardinal;

const ppt: PPoint; const pcmdtReserved: IUnknown;

const pdispReserved: IDispatch): HRESULT;

begin

PopupMenu1.Popup(ppt.x, ppt.y); //show our own contextmenu

result := S_OK; // Don't show default menu

end;

위의 코드를 프로그램에 포함 시키면 된다는데..

OnShowContextMenu는 IDocHostUIHandler에 구현되어 있는데

MS에서 찾아보니



mshtmhst.h에 선언 되어 있답니다.



관련내용

It is declared in mshtmhst.h. If you download the headerfiles from MS

mshtmhst.idl is also included. You can try cut and paste it to the text

window in type library editor and see if it works.It is declared in mshtmhst.h. If you download the headerfiles from MS

mshtmhst.idl is also included. You can try cut and paste it to the text

window in type library editor and see if it works.





MSDN에서의 내용



http://msdn.microsoft.com/workshop/browser/Hosting/reference/IFaces/IDocHostUIHandler/ShowContextMenu.asp



IDocHostUIHandler::ShowContextMenu Method



--------------------------------------------------------------------------------



Called from MSHTML to display a context menu.



Syntax



HRESULT ShowContextMenu(

DWORD dwID,

POINT FAR *ppt,

IUnknown FAR *pcmdTarget,

IDispatch FAR *pdispObject

);



Parameters



dwID

Identifier of the context menu to be displayed.

ppt

POINT structure containing the screen coordinates for the menu.

pcmdTarget

Address of an IOleCommandTarget interface used to query command status and execute commands on this object.

pdispObject

Address of an IDispatch interface of the object at the screen coordinates specified in ppt. This allows a host to differentiate particular objects to provide more specific context.

Return Value



Returns one of the following values:



S_OK Host displayed its own UI. MSHTML will not attempt to display its UI.

S_FALSE Host did not display any UI. MSHTML will display its UI.

DOCHOST_E_UNKNOWN Menu identifier is unknown. MSHTML may attempt an alternative identifier from a previous version.



Remarks



In Microsoft® Internet Explorer 4.0 the pdispObject parameter supplied no information, but in Internet Explorer 5 and later the parameter contains the address of an IDispatch interface.



Windows CE



Windows CE Use version 2.12 and later

Minimum availability Internet Explorer 4.0



Example



The following code example shows how the pdispObject parameter is used.



IHTMLElement *pElem;

HRESULT hr;



hr = pdispObject->QueryInterface(IID_IHTMLElement, (void**)pElem);

if(SUCCEEDED (hr))

{

BSTR bstr;

pElem->get_tagName(bstr);

USES_CONVERSION;

ATLTRACE("TagName:%sn", OLE2T(bstr));

SysFreeString(bstr);

pElem->Release();

}



IDocHostUIHandler::ShowContextMenu Method



--------------------------------------------------------------------------------



Called from MSHTML to display a context menu.



Syntax



HRESULT ShowContextMenu(

DWORD dwID,

POINT FAR *ppt,

IUnknown FAR *pcmdTarget,

IDispatch FAR *pdispObject

);



Parameters



dwID

Identifier of the context menu to be displayed.

ppt

POINT structure containing the screen coordinates for the menu.

pcmdTarget

Address of an IOleCommandTarget interface used to query command status and execute commands on this object.

pdispObject

Address of an IDispatch interface of the object at the screen coordinates specified in ppt. This allows a host to differentiate particular objects to provide more specific context.

Return Value



Returns one of the following values:



S_OK Host displayed its own UI. MSHTML will not attempt to display its UI.

S_FALSE Host did not display any UI. MSHTML will display its UI.

DOCHOST_E_UNKNOWN Menu identifier is unknown. MSHTML may attempt an alternative identifier from a previous version.



Remarks



In Microsoft® Internet Explorer 4.0 the pdispObject parameter supplied no information, but in Internet Explorer 5 and later the parameter contains the address of an IDispatch interface.



Windows CE



Windows CE Use version 2.12 and later

Minimum availability Internet Explorer 4.0



Example



The following code example shows how the pdispObject parameter is used.



IHTMLElement *pElem;

HRESULT hr;



hr = pdispObject->QueryInterface(IID_IHTMLElement, (void**)pElem);

if(SUCCEEDED (hr))

{

BSTR bstr;

pElem->get_tagName(bstr);

USES_CONVERSION;

ATLTRACE("TagName:%sn", OLE2T(bstr));

SysFreeString(bstr);

pElem->Release();

}



프로그램에서 IDocHostUIHandler의 ShowContextMenu를 사용하려면

어떻게 해야 하나요?



0  COMMENTS
    • 왕초짜
    • 2000.03.13 23:26
    • 8 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.03.14 00:17
      왕초짜 wrote: > 안녕하세요... > 궁금한게 있어서 질문드립니다. > 에디트박스 3개로 년, 월, 일을 입...
    • 왕초짜
      2000.03.14 01:03
      MyDate:=EncodeDate(strtoint(ed1.Text),strtoint(ed2.Text ),strtoint(ed3.Text) ); 요렇게 하니까 년...
    • parkisu
      2000.03.14 09:46
      왕초짜 wrote: > MyDate:=EncodeDate(strtoint(ed1.Text),strtoint(ed2.Text ),strtoint(ed3.Text) ); > ...
    • 박성훈
      2000.03.14 00:16
      왕초짜 wrote: > 안녕하세요... > 궁금한게 있어서 질문드립니다. > 에디트박스 3개로 년, 월, 일을 입...
    • 최용일
      2000.03.14 00:13
      다음과 같이 FormatDateTime함수를 이용하세요 FormatDateTime('yyyymmdd', StrToDate(Box1.Text+'-'+...
    • 왕초짜
      2000.03.14 00:57
      최용일 wrote: > 다음과 같이 FormatDateTime함수를 이용하세요 > > FormatDateTime('yyyymmdd', Str...
    • 최용일
      2000.03.14 01:17
      당연히 에러가 날수밖에 없습니다. FormatDateTime은 TDate형을 돌려주는게 아니라 날짜의 문자열을 돌려...
    • • • •
    • 젠키
      2000.03.13 23:42
      철이 wrote: > delphi에서 엑세스 디비를 연결하여 사용하였습니다.... > 프로그램이 실행되거나, 디비가...
    • 철이
      2000.03.14 18:34
      젠키 wrote: > 철이 wrote: > > delphi에서 엑세스 디비를 연결하여 사용하였습니다.... > > 프로그램이...
    • 근수
      2000.03.25 07:16
      박성훈 wrote: > 2000-02-02 02:50:00과 2000-03-03 14:10:00의 차이를 구한다음 이것을 시간으로 표시하...
    • 최용일
      2000.03.14 00:58
      TimeStamp를 이용하시면 간단히 구하실 수 있습니다. var Time1, Time2, pTime: TTimeStamp; begin ...
    • 박성훈
      2000.03.14 00:23
      박성훈 wrote: > 2000-02-02 02:50:00과 2000-03-03 14:10:00의 차이를 구한다음 이것을 시간으로 표시하...
    • 송정환
    • 2000.03.13 22:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.13 23:59
      텍스트(.txt)파일로 저장하는 방법처럼 하시면 됩니다. 단지 그 사이사이에 HTML태그를 넣어서 저장하시...
    • 한승수
    • 2000.03.13 22:16
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장은석
      2000.03.14 15:57
      한승수 wrote: > > 두개 이상 실행시키는 것을 막기 위해 > > 제가 짠 프로그램이 이미 실행중이...
    • blueSky
      2000.03.13 23:55
      한승수 wrote: > > 두개 이상 실행시키는 것을 막기 위해 > > 제가 짠 프로그램이 이미 실행중이...
    • toto1052
    • 2000.03.13 22:02
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 착한악마
      2000.03.14 07:24
      리포트 옵션에 있는 기능이거든요... 리포트 세팅에서 컬럼수를 조정해 보세요....그럼 될겁니다...( 코딩...
    • 하얀까마귀
      2000.03.13 22:19
      안녕하세요 하얀까마귀 입니다... 불행히도 없어요....(
    • 종이학
      2000.03.13 21:00
      Go100 wrote: > 어떤 폼에서 조회를 하면서 DbGrid 숫자 필드에 > (1,000,000,000) 이처럼 3자리에 컴마...
    • 하얀까마귀
      2000.03.13 20:55
      안녕하세요 하얀까마귀 입니다. 처음 질문은 그냥 불러 올때 소트를 하시구요... order by 하시면 됩니...
    • blueSky
      2000.03.13 19:11
      김경한 wrote: > > 급합니다. > > 시간이 만약 16:45 초라면,, (16 분 45 초) > > 에디트 박스...
    • 김경한
      2000.03.13 19:25
      blueSky wrote: > 김경한 wrote: > > > > 급합니다. > > > > 시간이 만약 16:45 초라면,, (16 분 ...
    • 강인규
      2000.03.13 21:59
      위의 분이 답변주신것이 맞습니다. 초에서 'ss'를 해주면 01초가 되지요. 아마도 문자형으로 디비에 저...
    • 박성훈
    • 2000.03.13 18:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.13 20:41
      저의 답변을 이해를 못하신것 같군요... 저는 OS(explorer.exe)차원에서 이야기한 것인데... 그럼 두번째 ...
    • 박상길
    • 2000.03.13 18:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.03.14 23:54
      박상길 wrote: > Windows CE 에서 델파이 지원이 가능한지 알고 싶습니다....... 안녕하세요 하얀까마...
    • 안대규
    • 2000.03.13 18:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2000.03.13 18:56
      안대규 wrote: > 안녕하세요~~~ > 궁금중이 있어 이렇게 글을 올립니다. > 델파이에서 제공하는 vcl디렉...
    • 초보
    • 2000.03.13 17:30
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장은석
      2000.03.14 10:15
      초보 wrote: > 레지스트리의 rootkey: HKEY_LOCAL_MACHINE 에서 > 'SOFTWAREMicrosoftWindowsCurrentVers...
    • 초보
      2000.03.15 01:08
      제 질문을 바로 이해해 주시고 답변 주시니 고마습니다. 덕분에 성공했습니다.
    • 최용일
      2000.03.13 21:22
      SetWindowHookEx와 같은 API함수를 이용하여 시스템전체의 메세지나 이벤트를 장악하시면 됩니다. 쉽게 말...
    • 조규춘
      2000.03.13 21:16
      고수는 아니지만 그냥 한번 올려 봅니다. 아래의 소스는 ctrl + alt + del을 눌렀을때 내가 만든 프로그...
    • 최용일
      2000.03.13 23:47
      레지스트리에 핫키를 등록하시어 사용하시면 됩니다. 그럼 폼이 활성화되었건 비활성화 되었건간에 상관없...
    • 때밀이
    • 2000.03.13 10:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 종이학
      2000.03.13 20:56
      때밀이 wrote: > test1과 test2에서 다음과 같이 비교하려 합니다. > > select a.* from test1 a, > ...