본문 바로가기

전체 글

Windows Mobile HTML 컨트롤 DTM_BROWSERDISPATCH 문제 Windows Mobile 6 SDK로 IE 임베딩된 어플리케이션을 개발하는 도중 웹브라우저의 이벤트에 맞춰 프로그램을 할일 이있어서 웹브라우저 COM 객체에 Advise 하려고 했다. DTM_BROWSERDISPATCH 메시지로 브라우저 컨트롤의 Dispatch 인터페이스를 얻을 수 있다고 MSDN에 나와있어서 적용해 보았다. (http://msdn.microsoft.com/en-us/library/bb415471.aspx) CComQIPtr m_spDispatch; CComQIPtr m_spWebBrowser; this->m_view.GetBrowserDispatch(&m_spDispatch); HRESULT hr = m_spDispatch->QueryInterface(IID_IWebBrowser2,.. 더보기
Java에서 JSON을 이용한 OpenAPI JSON 라이브러리중 json-simple를 사용했습니다. 다음 도서 검색 OpenAPI를 사용하는 예입니다. URL url = new URL("http://apis.daum.net/search/book?q=Java&apikey=OEPNAPI_KEY&searchType=title&output=json&result=5pageno=1"); // 한글 처리를 위해 InputStreamReader를 UTF-8 인코딩으로 감싼다. InputStreamReader isr = new InputStreamReader(url.openConnection().getInputStream(), "UTF-8"); // JSON을 Parsing 한다. 문법오류가 날 경우 Exception 발생, without Exception -.. 더보기
Naver OpenAPI 유감 오늘 2009년 매쉬업 경진대회에 출전했던 도서나눔 사이트 ggats.com을 유지보수 하던 중 도서검색 결과가 DB에 저장될때 오류가 발생하여 오류를 찾다보니 네이버 도서검색 API(http://dev.naver.com/openapi/apis/data/book)의 아웃풋이 바뀐 걸 알았습니다. 이전에는 bid(네이버 도서에서의 책ID 즉 book.naver.com 의 키 인듯 합니다.) 를 노출하여 예를 들어 '소설 손자병법'의 예전 link 아웃풋은 http://book.naver.com/bookdb/book_detail.php?bid=117701 였지만, 어느세 http://openapi.naver.com/l?AAAC3MSw6DIBgE4NP8LIk8LLJgoVav0UihgfQBJWji7VVCMosv.. 더보기
윈도우즈 어플리케이션에서 IXMLHTTPRequest 사용하여 OpenAPI 응용프로그램을 개발하기 AJAX 비동기 처리를 위한 IXMLHTTPRequest, COM 인터페이스의 하나이기 때문에 웹 브라우저 안에서 뿐 아니라 윈도우즈어플리케이션으로도 구현이 가능합니다. 더욱이 IXMLHTTPRequest는 Windows CE기반의 Windows Mobile에서도 구현이 되어있을 뿐 아니라, IXMLDOMDocument와 같은 XML DOM 인터페이스와도 바로 연결이 가능하므로 윈도우즈 어플리케이션에서 복잡한 Socket처리나, WinInet라이브러리를 별도로 사용하지 않아도 쉽게 웹의 OpenAPI를 사용할 수 있습니다. ( 내부적으로는 WinInet, Socket을 사용합니다. ) http://msdn.microsoft.com/en-us/library/aa924919.aspx : IXMLHTTPReq.. 더보기
COM의 IStream을 파일에 저장 SHCreateStreamOnFile 함수로 지정된 파일에 대한 IStream 인터페이스를 얻은 다음 CopyTo 메소드로 스트림을 복사합니다. (http://msdn.microsoft.com/en-us/library/bb759864(VS.85).aspx) pStreamSrc = ........ STATSTG StatInfo; CComPtr pStreamDest; hr = SHCreateStreamOnFile(L"C:\\profile.png", STGM_WRITE | STGM_CREATE, &pStreamDest) ; pStream->Stat(&StatInfo, STATFLAG_NONAME ); pStream->CopyTo(pStreamDest, StatInfo.cbSize, NULL, NULL); pS.. 더보기
SNS와 소셜게임 소셜네트워크서비스(SNS) 서비스가 주목을 받고있습니다. 하지만 SNS가 서비스 됨에 따라 인맥 네트워크간 부익부 빈익빈 현상이 발생합니다. 이 현상은 바바라시 교수의 링크에 언급된 네트워크의 법칙으로 네트워크 노드간의 링크는 네트워크는 점점 노드가 생겨남에 따가 연결수가 많은 링크를 선택하게 된다는 법칙입니다. 이 현상이 SNS에서도 발생합니다. 트위터를 예로들면 유명인사들의 트위터의 Follower들은 수많은데 비하여 알려지지않는 트위터는 Follower가 0인 경우가 많습니다. 그런데도 유명인사들의 트위터들은 끊임없이 Follower들이 많아집니다. SNS가 성장하기 위해서는 불균형을 해소를 위해 노력해야 하는 과제를 안고있습니다. 주목을 받지못하고 도대되어 버리면 무형의 링크가 아닌 사람은 떠나버.. 더보기
HTML5 Canvas HTML5의 Canvas 요소는 그래픽을 표현할 수 있는 요소입니다. 차후 Flash나 실버라이트를 부분적으로 대채할 수 있을 정도로 뛰어난 기능을 나타내는 것 같습니다. JQuery로 유명한 존 레식이 참여하고 있는 Processing.js 보면 Javascript로 Canvas 요소를 쉽게 사용할 수 있습니다. http://processingjs.org/ 다만 아직 IE에서는 canvas 요소를 지원하지 않습니다. http://excanvas.sourceforge.net/ 를 이용해서 따로 별도의 자바스크립트를 추가해야 합니다. http://hascanvas.com 에 가면 HTML의 Canvas 를 활용한 다양한 예제를 볼 수 있습니다. 더보기
[WM] Common Dialog Box(공통대화상자) Message 처음 Windows Mobile에서 Common Dialog Box 를 사용하시는 분들이라면 메세지 처리를 한번 보셔야 할 것 같습니다. 당연히 일어나야 할 것 같은 메세지가 일어나지 않는다면 의심해 보세요. 현재 Windows Mobile 에서는 2개의 Common Dialog Box 메세지 만을 제공합니다. CDM_SETDEFEXT This message sets the default filename extension for an Explorer-style Open or Save As common dialog box. CDN_TYPECHANGE This message is sent by an Explorer-style Open or Save As common dialog box when the use.. 더보기