본문 바로가기

Programming

기본 브라우저로 URL 실행 대부분 기본 브라우저를 HKEY_CLASSES_ROOT 하위의 http\shell\open\command 에서 읽어와서 처리하는 경우가 대부분이었지만 비스타에서는 이곳에 값을 쓰기 위해 권한 상승이 불가피하기 때문에 대부분의 웹브라우저들은 다른 방법으로 우회하여 처리하고 있다. 이를 일일이 찾아서 처리하는 방식 대신 WINAPI 함수인 FindExecutable() 함수를 사용하여 기본 브라우저 패스를 얻어 올 수 있다. bool ExecuteDefaultWebBrowser(HWND hwnd, LPCTSTR url) { TCHAR tempFolder[MAX_PATH] = {0,}; if(GetTempPath(_countof(tempFolder), tempFolder) == 0) { // Temp 폴더를 .. 더보기
ConvertBSTRToString 링크 에러 발생시 원인 : SDK 설치시 제공된 코드에 문제가 있음. 해결 : comdef.h 수정( 검색하면 여러개 검색됨. ) # pragma comment(lib, "comsupp.lib") 부분을 아래와 같이 수정 ------------------------------------------------------------ #ifdef _NATIVE_WCHAR_T_DEFINED # ifdef _DEBUG # pragma comment(lib, "comsuppwd.lib") # else # pragma comment(lib, "comsuppw.lib") # endif #else # ifdef _DEBUG # pragma comment(lib, "comsuppd.lib") # else # pragma comment(li.. 더보기
ActiveX 컨트롤에서의 IObjectSafety 인터페이스 구현 퍼온 글 : http://cafe.naver.com/imp09.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=3 IE를 가지고 인터넷 서핑을 하다가 보안 등급에 걸려서 어떠한 메시지를 본적이 있는가? 특히 ActiveX를 사용하는 상용서비스의 경우 지금 설명하게 될 방법을 적용하여 사용자가 해당 메시지를 볼 수 없게 하겠지만, 개발자의 경우 개발 도중 이러한 메시지를 보고 당황할 지도 모르겠다. 그럼 어떻게 해야 된다는 것인가? Implementation IObjectSafety Interface for ActiveX control ActiveX? MS의 ActiveX 기술은 현재 다음과 같은 3가지로 구분되어 진다. ActiveX Control 흔히 우리가 알고 있는 .. 더보기
IDocHostUIHandlerDispatch IDocHostUIHandlerDispatch 윈도우에 호스팅된 IE 컨트롤을 사용시 기본적으로 스크롤바가 생성되게 된다. 이 스크롤바를 없애기 위해서 IDocHostUIHandler::GetHostInfo() 를 호출하면 되는데 DOCHOSTUIINFO::dwFlags에 DOCHOSTUIFLAG_SCROLL_NO를 넣어주게 되면 스크롤이 생성되지 않게 된다. 아래는 샘플 코드이다. HWND window = NULL; IWebBrowser2* browser = NULL; IUnknown* unkContainer = NULL; window = CreateWindowEx(0, szWindowClass, _T("ie contrl window"), WS_VISIBLE | WS_CHILD, rt.left, rt... 더보기
ATL 컨트롤 포함 FAQ(질문과 대답) 이 단원에서는 ATL 컨트롤 호스팅과 관련된 질문에 대해 설명합니다. 참고 Visual C++ .NET에서 "AtlAxWin" 창 클래스의 이름은 "AtlAxWin7"로 변경되었습니다. Visual C++ 6.0과 함께 제공되며 현재 system.dll인 atl.dll에서 호스팅 코드를 사용하는 경우에는 "AtlAxWin"을 사용할 수 있습니다. 클래스와 API ActiveX 컨트롤 포함을 용이하게 해주는 ATL 클래스는 무엇입니까? ATL 컨트롤 호스팅 API는 무엇입니까? AtlAxWin7은 무엇입니까? 컨트롤 만들기와 로드 컨트롤 인스턴스를 만드는 방법은 무엇입니까? 런타임에 지정된 컨트롤을 로드하는 방법은 무엇입니까? 대화 상자 리소스에 지정된 컨트롤을 로드하는 방법은 무엇입니까? 라이센스가 있는.. 더보기
Gdiplus 객체를 new로 생성할 경우 에러 처리 MFC에서 Gdiplus를 사용할때 Gdiplus object를 new로 생성할 경우 C2660 에러가 발생함 이는 디버그시 전처리기에서 new 연산자를 재정의 해서 발생되는 문제입니다. 그러므로 전처리기의 재정의를 삭제할 경우 에러가 발생하지 않는다. #ifdef _DEBUG #define new DEBUG_NEW #endif 위의 정의문을 삭제하거나 또는 헤더파일을 수정하여 추가된 파라미터를 무시하도록 재정의 하는 방법입니다. //// Ensure that GdiPlus header files work properly with MFC DEBUG_NEW and STL header files. #define iterator _iterator #ifdef _DEBUG namespace Gdiplus { n.. 더보기
Detect or crash a particular version of SoftICE Know your Enemy: Tracking Botnets - Source Code What techniques bots use Honeynet Project http://www.honeynet.org Last Modified: 17 February, 2005 In this side note, we take a closer look at the source code of some bots. We demonstrate several examples of techniques used by current bots to either speed-up computations or to detect suspicious environments, such as detection of debuggers or virtua.. 더보기