COM 46

COM+ 및 이를 활용하여 블로그 구축 관련 pdf 자료

절판된 책인데 내용이 언뜻 봐도 알찬 듯 하네요. COM 관련 개념설명도 좋은 것 같습니다. Appendix A 예제 프로그램 설치하기.pdf Chapter 1 커스텀 웹 컨트롤 프로그래밍.pdf Chapter 2 XML과 XSLT 프로그래밍.pdf Chapter 3 COM+ 프로그래밍.pdf Chapter 4 실전예제 - 블로그 시스템 구현하기.pdf 고맙게도 저작자분께서 비영리 목적으로 배포나 이용을 허락하셨네요. 이에 대한 pdf 전문 내용입니다. 이 문서는 2004년 10월 가남사에서 출간된 iASP.Net으로 구현하는 블로그 프로그래밍i 서적의 원고이며 책이 절판된 이후 더러 찾으시는 분이 있어 PDF 형태로 공개합니다. 이 저작물의 저작권은 저자인 i장현희i에게 있으며 이 저작물의 내용은 i크..

COM, ATL 2011.07.26

IOleContainer 를 가지고 enum 객체 생성해 다수의 웹브라우저 컨트롤 구해보는 소스

The following code demonstrates how to access the WebBrowser Object Model of frames in an HTML page to refresh the contents of each frame. The most important piece of the code uses the IOleContainer::EnumObjects method of the HTML Document object to enumerate embeddings on the page. Each of these embeddings represents a control on the page. By querying each control object for IWebBrowser2, this ..

웹, HTML 2009.09.28

IHTMLWindow2->get_document가 E_ACCESSDENIED를 뱉는 경우(아래와 다른 해결방법)

IHTMLWindow2的get_document方法有时候会返回E_ACCESSDENIED2009年2月20日 由 阿华 留言 » IHTMLWindow2的get_document方法有时候会返回E_ACCESSDENIED 当一个page有多个sub frame的时候,如果frame的src在不同的domain上,就会返回这个错误,真是郁闷,在网上找了一些资料,没用太多有用的信息,最后还是MSDN解决问题,呵呵 解决的办法就是通过 IWebBrowser2 的 IOleContainer 接口访问所有的frame,代码如下 HRESULT CBhoOfPopBars::GetSelectionByOleContainer( CString& selText, CRect& selRect ) { // Get the IDispatch of the main document..

웹, HTML 2009.09.28

웹페이지 프레임 포함 전체 소스 추출

// 깔끔하게 만들려고 노력했다. // 에러처리 완벽하게 할려고 했다. /* // LPWSTR lpszSource; // WCHAR 포인터(유니코드 문자열) 변수 할당 if(GetHtmlSource(pDoc, &lpszSource)){ // 성공여부 체크 //ClipBoardTextCopyW(lpszSource); // 필요한 작업~~~~ //..... //.... //... free(lpszSource); // ★ 작업이 끝나면 반드시 해제하자 } */ int __stdcall GetHtmlSource(IHTMLDocument2 *pDoc, LPWSTR *ppszText) { int iRunCount = 0; // 함수 실행 횟수 제한키 위해 int iSuccessCount = 0; // 성공적으로 프..

웹, HTML 2009.07.08

고급 액티브X 컨트롤에 도전하자

지난 연재에서는 컨트롤의 내부를 살펴봤다. 이번호에서는 보다 좋은 컨트롤을 만들기 위한 외부적인 기능들을 몇 가지 소개하고 3회에 걸친 연재를마치려고 한다. 컨트롤이 IE 안에서 다양한 기능을 수행하기 위해 기본적으로 제공해야 할 기능이 있다. 이번호에서는 메모리 DC를 사용한 부드러운 화면 처리, 툴팁의 제공, 쓰레드의 활용 등 대표적인 기능들을 하나씩 살펴보겠다. 웹을 기반으로 하는 프로젝트에서 중요 기능을 액티브X 컨트롤로 개발하기 위해서는 몇 가지 선행 지식이 있어야 한다. 우리는 지난 1회 연재를 통해 전체 개발 프로세스를 알아왔다. 컨트롤을 어떻게 만들고 어떻게 분배하는지를 볼 수 있었을 것이다. 2회 연재에서는 좀더 이론적인 부분으로 들어가 IE의 내부적인 구조와 이 구조에 따른 컨트롤의 특..

ActiveX 2008.09.14

COM, ATL에서의 reinterpret_cast 의 쓰임새

그동안 C++에서 reinterpret_cast를 배우긴 배웠는 데 실제로 써먹는 경우가 없었다. 그런데 컴포넌트 작성하면서 쓰게 될 줄이야~~~ 커넥션 포인터 관련 얻는 부분의 코드 조각이다. m_rgpCP[0] = new CConnectionPoint(reinterpret_cast(this), DIID__DIDragonEvents); 사전적 의미는 "재해석해서 캐스트"한다.... 즉 강제 형변환 캐스팅이다. 컴파일러는 약간 지능적이다. 클래스 형변환시 부모 - 자식 관계의 형태에서 포인터 관련코드 디버그해보면서 놀랐던 기억이 난다. 그 전까지 형변환으로 사용했던 것은 모두 reinterpret_cast(강제 형변환) 의미를 가진 것이었다. 이를테면 핸들값을 스파이로 알 경우.... HWND hWnd ..

COM, ATL 2008.09.11

ATL_NO_VTABLE

Visual C++ 개념: 프로젝트 만들기 및 관리 ATL 프로젝트에 대한 컴파일러 최적화 지정 기본적으로 ATL 컨트롤 마법사는 ATL_NO_VTABLE 매크로를 사용하여 다음과 같이 새 클래스를 생성합니다. 코드 복사class ATL_NO_VTABLE CProjName { ... }; 그런 다음 ATL은 다음과 같이 _ATL_NO_VTABLE을 정의합니다. 코드 복사#ifdef _ATL_DISABLE_NO_VTABLE #define ATL_NO_VTABLE #else #define ATL_NO_VTABLE __declspec(novtable) #endif _ATL_DISABLE_NO_VTABLE을 정의하지 않으면 ATL_NO_VTABLE 매크로가 declspec(novtable)으로 확장됩니다. 클래..

COM, ATL 2008.08.30

BSTR 자료형 고찰과 사용시 주의점

BSTR은 자동화 타입에서 사용되는 문자열 자료형로서 메모리상에 처음 4바이트는 문자열의 길이값이 입력되고 그 후 유니코드의 문자열이 위치한다. 자동화(Automaton)에 사용되는 자료형의 하나이며 인터페이스에 dual 이나 automation(커스텀 인터페이스일지라도 이 속성을 주면 타입라이브러리 마샬링을 수행한다.) 속성이 존재하거나 dispinterface 등 IDispatch 관련 인터페이스인 경우 오토메이션 마샬러인 타입라이브러리 마샬링을 행할 것이다. 참고로 idl파일에서 [string] 속성을 주지 못한다. 이 속성을 주면 컴파일시 에러메시지가 검출된다. 메모리 할당과 해제는 CoTaskMemAlloc, CoTaskMemFree를 사용하지 않고 SysAllocString과 SysFreeSt..

COM, ATL 2008.08.29

싱크 부분 구현 참조.....

InkOverlayEv.h C:\home\SVGCats_src\src\InkOverlayEv.h [–ÚŽŸ | Œ^EƒNƒ‰ƒXE\‘¢‘Ì | ƒ}ƒNƒ] –ÚŽŸ 1. IUnknown Interface 2. IDispatch Interface 3. Events - overridden functions 4. Methods 5. Data Members Œ^EƒNƒ‰ƒXE\‘¢‘̈ꗗ InkOverlayEvents ƒNƒ‰ƒX ƒ}ƒNƒˆê—— INKOVERLEYEV_H ƒ}ƒNƒ 1|/* 2|* This file was made by refering from Tablet PC SDK. 3|* "E:\Program Files\Microsoft Tablet PC Platform SDK\Sa..

COM, ATL 2008.08.28