분류 전체보기
-
MFCData/Container 2008. 12. 20. 23:02
템플릿 컬렉션 클래스에 사용자 정의 클래스를 저장 생성자 함수 .==()를 오버로딩 C{XXX}Array // vector? CArray CTypedPtrArray 소멸시 포인터가 가리키고 있는 아이템을 삭제하지 않는다. .SetSize() .GetSize() .InsertAt() .RemoveAt() .RemoveAll() .Add() .[]() #include CUIntArray array; or CArray array; array.SetSize(10); for(int i=0 ; i
-
In Process, MFCActiveX/Automation 2008. 12. 20. 00:33
1. [MFC AppWizard (dll)]로 프로젝트 생성한다. 이때 [Automation]을 체크 2. IDispatch 인터페이스를 구현할 클래스 생성 [Insert | New Class] 메뉴를 선택해서 [Class Type]은 'MFC Class', [Base class]는 CCmdTarget 그리고 [Automation] 항목에서 [Creatable by type ID]를 선택해서 생성 3. 생성된 인터페이스의 컨텍스트 메뉴에서 [Add Method]를 선택해서 메소드 추가 BOOL CCalcServerApp::InitInstance() { // Register all OLE server (factories) as running. This enables the // OLE libraries t..
-
ATLActiveX/컨트롤 2008. 12. 18. 19:05
ActiveX 컨트롤 // OLE 컨트롤 커스텀 컨트롤 COM 클래스 a COM object that implements a certain set of interfaces that enable it to look and act like a control IDispatch expose methods and properties IConnectionPointContainer to fire events To find out what kinds of events the control is capable of firing (and by extension, what methods the container must implement in order to respond to control events), most con..
-
Custom Interface COM 클라이언트컴포넌트(COM)/COM 2008. 12. 17. 23:17
objbase.h #if (_WIN32_WINNT >= 0x0400 ) || defined(_WIN32_DCOM) // DCOM WINOLEAPI CoInitializeEx(LPVOID pvReserved, DWORD dwCoInit); #endif // DCOMCoInitialize() CoUninitialize() CoCreateInstance() COM 개체를 생성하고 인터페이스 포인터를 얻는다. 생성된 개체는 인터페이스 포인터에 레퍼런스 카운트된다. IUnknown .QueryInterface() .AddRef() .Release() // C++ DECLARE_INTERFACE_(ICalculator, IDispatch) { STDMETHOD(Add)(THIS_ long a, long b, lon..
-
자동화 컨트롤러(클라이언트)ActiveX/Automation 2008. 12. 17. 00:25
* VBScript(CalcClient.vbs) Set Calc = CreateObject("CalcServer.Calculator") Sum = Calc.Add(5, 3) MsgBox("5+3 = " + CStr(Sum)) Set Calc = Nothing * VBScript(CalcClient.vbs) - 다중개체 Set Clock = CreateObject("ClockServer.Application") ' 시침 속성 설정 Clock.Appearance.Tickness(0) = 5 Clock.Appearance.Length(0) = 35 Clock.Appearance.Color(0) = RGB(0, 0, 255) ... Clock.ShowWindow() Clock.UpdateWindow() * VB..
-
컨테이너ActiveX/컨트롤 2008. 12. 16. 23:55
// 웹페이지 속성의 초기값 설정 // 프로퍼티 맵 컴포넌트 카테고리 컴포넌트의 기능을 표현하는 일반적인 방법 웹 페이지에서 사용될 때 해당 ActiveX 컨트롤은 모든 웹 페이지 상에서 자신이 안전하다는 것을 보장해야 한다. 컨트롤의 안정성을 보장하지 않으면 Internet Explorer의 보안 설정을 낮음으로 설정하지 않으면 아예 동작을 하지 않는다. // ObjectSafety - 파일 시스템을 조작하지 않는다. - 자신을 등록 또는 해제하는 것을 제외하고는 시스템 레지스트리를 조작하지 않는다. - 배열의 범위를 넘어선다든가 메모리를 부적절하게 조작하지 않는다. - 모든 입력값에 대해서 데이터의 유효성을 확인한다. - 사용자 또는 사용자가 제공한 데이터를 부적절하게 사용하지 않는다. Microso..
-
MFCActiveX/컨트롤 2008. 12. 16. 01:16
AfxOleInit() Ole초기화 스레드 마다? 액셀러레이터 키(화살표, 탭 키같은)를 ActiveX 컨트롤 컨테이너의 메시지 펌프가 가로채기 때문에, 컨트롤에 포커스가 있어도 키 메시지를 받지 못한다. MFC 액티브X 컨트롤은 PretranslateMessage 함수를 오버라이드함으로써 이러한 메시지들을 가로챌 수 있다. 그러나, MFC 액티브X 컨트롤의 PreTranslateMessage 함수가 항상 호출되는 것은 아니다. PreTranslateMessage 함수는 컨트롤의 IOleInPlaceActiveObject 인터페이스의 TranslateAccelerator 메소드가 호출한다. 인터넷 익스플로러는 현재 UI-Active인 컨트롤에 한해서 이 메소드를 호출한다. 한번에 하나의 컨트롤 만이 UI..
-
텍스트 IO - Win32스트림 IO/기타 2008. 12. 14. 21:53
GetStdHandle()SetStdHandle()SetConsoleMode()ReadConsole()WriteConsole()FreeConsole()AllocConsole()#define _UNICODE // C 라이브러리#include _fgettc()_tprintf()_stprintf() // sprintf()_tstcpy() // strcpy()_itot() // itoa()_ttoi()_totuppper()_totlower()#include fread()fwrite()ferror()feof()fgetc()fputc()포매티드 IO(?)순차적 파일 처리(?)catgrep