전체 글 389

IWebBrowser2 를 이용해서 웹브라우저 원하는 위치에 띄우기 Tools와 Tips

BOOL OpenNewWindowEx(LPCTSTR pAddress, BOOL bMenu, BOOL bToolBar, BOOL bAddressBar, BOOL bStatusBar, BOOL bResize, int x, int y, int cx, int cy) { CoInitialize(NULL); IWebBrowser2 *pWebBrowser; HRESULT hr; // 웹브라우저 객체를 생성한다. hr = ::CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&pWebBrowser); if(FAILED(hr) || pWebBrowser == NULL) return FALSE; // 메뉴..

웹, HTML 2008.08.14

COM Architecture : Interface Marshaling, IDispatch interface

Interface Marshaling 1. marshaling의 개념 - COM 서버는 위치 투명성을 지원한다. 즉 COM 클라이언트와 동일 프로세스 내에 있던(in-process server), 동일 머신 타 프로세스로 존재하던지(out-of-process server), remote 머신에 있건(remote server) 상관하지 않는다. 이는 각기 다른 매커니즘을 통한 데이터 통신을 동일한 인터페이스로 이룰 수 있도록 해야한다는 이야기. marshaling은 위의 세 경우 중 프로세스 경계를 넘어 데이터를 전송하는 out-of-process server, remote server를 위한 데이터 전송 매커니즘이다. 2. marshaling의 종류 - standard marshaling, Automat..

COM, ATL 2008.08.14

COM 기본 개념 ~~ 정리해 보자

COM(Component Object Model) - 가상함수 테이블을 메모리게 구축하고 Virtual Table을 통해 함수를 호출하는 표준 정의 - 인터페이스(접근방법)와 구현(캡슐화)의 분리 - 모든 COM 인터페이스는 IUnknown의 AddRef(), Release(), QueryInterface() 함수로 시작 - 인터페이스 : 개체와 클라이언트간의 규약 - 사용자와 소프트웨어가 따로 사용하는 이름이 존재 - 일반적으로 인터페이스명은 I로 시작 - 모든 인터페이스는 GUID(Globally Unique Identification)를 가짐(=IID) - IID : 128 bit 구조체 형식, IP와 시간에 대한 알고리즘으로생성하므로 세계에서 유일한 ID - Implementation에서는 강제로..

COM, ATL 2008.08.08