<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>아폴로-무엇을 쓸가</title>
	<link>http://corapollo.egloos.com</link>
	<description>블로그를 만들었지만 정작 무엇을 써야하는지 생각 떠오르지 않는구나...</description>
	<language>ko</language>
	<pubDate>Sun, 03 Aug 2008 08:06:33 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>아폴로-무엇을 쓸가</title>
		<url>http://pds9.egloos.com/logo/200802/27/28/f0015628.jpg</url>
		<link>http://corapollo.egloos.com</link>
		<width>80</width>
		<height>63</height>
		<description>블로그를 만들었지만 정작 무엇을 써야하는지 생각 떠오르지 않는구나...</description>
	</image>
  	<item>
		<title><![CDATA[ 조선인민군 금강산지구 군부대 대변인특별담화 ]]> </title>
		<link>http://corapollo.egloos.com/657189</link>
		<guid>http://corapollo.egloos.com/657189</guid>
		<description>
			<![CDATA[ 
  <span class="e_white_f"><font color="#0000ff">조선인민군 금강산지구 군부대 대변인특별담화 <br />
                        </font><br />
                        <br />
                        <font color="#000000">지난 7월 11일 금강산지구에서는 정체불명의 남조선관광객이 우리의 군사통제구역안에 불법침입하였다가 사살되는 불미스러운 사고가 발생하였다. <br />
                        <br />
우리는 지금도 사살된 관광객이 남들이 깊이 잠든 이른새벽에 무슨 목적으로 넘어서는 안될 경계울타리를 넘어들어왔는지, 또군사통제구역안에 깊숙이 들어와 무엇을 하려고 하였는지도 모르고있다. <br />
                        <br />
                        그러나 우리는 사고경위가 어떠하든지 비록 당사자가 자기의 불찰로 불상사를 당하였지만 그가 같은 동포라는 점을 고려하여 이미 유관부문을 통해 유감의 뜻도 표명하였다. <br />
                        <br />
                        하지만 남조선괴뢰들은 사고가 발생하자마자 마치 기다리기라도 한것처럼 그것을 구실로 앞뒤를 가리지 않고 매일과 같이 무분별한 반공화국대결소동에 열을 올리면서 내외의 여론을 오도하여왔다. <br />
                        <br />
                        여기에는 리명박역도자신과 《통일부》관계자들을 비롯한 괴뢰당국자들이 앞장서고있으며 《한나라당》을 포함한 보수정당, 단체들이 합세하고있다. <br />
                        <br />
                        7월 31일에도 괴뢰국무총리 한승수가 또다시 공식석상에 나타나 가소롭게도 우리더러 이번 사건의 책임자를 《처벌》하고 납득할만 한 《해명》을 하라고 력설하였다. <br />
                        <br />
                        우리는 리명박패당이 적반하장격으로 우리를 걸고들며 계속 분주탕을 피우고있는 조건에서 할 말을 하지 않을수 없다. <br />
                        <br />
                        리명박패당의 이번 소동은 불순한 기도밑에 제나름의 추측과 판단으로 사건을 날조하여 의도적으로 벌리는 반공화국대결책동이다. <br />
                        <br />
                        우리 군인이 군사통제구역안에 들어온 정체불명의 침입대상을 발견한것은 지난 7월 11일 새벽 4시 50분경 경계울타리로부터 북쪽으로 약 800m떨어진 지점이였다. <br />
                        <br />
당시 전투근무중에 있던 우리 군인은 날이 채 밝지 않은 이른새벽의 시계상제한으로 침입대상이 어디서 나타났는지, 그가 남자인지녀자인지조차 식별할수 없는 조건에서 그의 신분을 확인할 목적으로 여러차례에 걸쳐 서라고 규정대로 요구하였다. <br />
                        <br />
그러나 침입자는 거듭되는 요구를 무시하고 황망히 달아나기 시작하였으며 공탄까지 쏘며 어떻게 하나 멈춰세우려는 우리 군인의노력에도 불구하고 빠른 속도로 도주하다가 끝내 발사된 총탄에 의하여 스스로 죽음을 초래하였다. <br />
                        <br />
                        바로 이것이 리명박패당이 떠들고있는 이번 사건의 진상이다. <br />
                        <br />
                        금강산군사통제구역은 우리의 자주권이 행사되는 지역이며 그것을 지키기 위한 우리 군대의 엄격한 군사적대응조치가 정황에 따라 즉시적으로 취해지는 최전방지역이다. <br />
                        <br />
                        여기에서는 그 누구를 막론하고 항시적인 격동상태에 있는 전투근무성원의 요구에 무조건 복종하게 되여있다. <br />
                        <br />
                        세계 그 어느 나라 군대에서나 이러한 요구는 꼭같이 적용되는 가장 보편적인 현실이다. <br />
                        <br />
                        더우기 림시적인 정전상태에서 쌍방무력이 날카롭게 대치하고있는 우리 나라에서는 이러한 군사적요구가 더 철저히 준수되여야 한다. <br />
                        <br />
군권을 미국에 통채로 내맡긴 남조선괴뢰군의 경우에도 상대가 자기의 관할통제구역안에 들어서면 먼저 경고신호를 하고 불응하면경고사격을 하게 되여있으며 그래도 불복하면 조준사격을 한다는 이른바 《교전규칙》이라는것을 만들어놓고있다. <br />
                        <br />
                        사건경위는 금강산지구에서 발생한 이번 사고의 원인이 어디에 있는가 하는것을 명백히 립증해주고있다. <br />
                        <br />
                        넘어서는 안될 경계울타리를 벗어나 관광객이 우리측 군사통제구역안에 들어오지 않았더라면, 멈춰서라는 우리 군인의 요구에 응하였더라면 죽음을 당하는 일은 애당초 발생하지 않았을것이다. <br />
                        <br />
                        터놓고 말하여 군사통제구역안에 불법침입한 그가 죽음을 당하였으니 말이지 우리로서는 알고싶은것이 너무나 많다. <br />
                        <br />
그럼에도 불구하고 리명박패당은 마치 우리 군인이 군사통제구역에 들어온 침입대상을 이른새벽에 산책하는 비무장관광객인줄 뻔히알면서도 《과잉대응》한것처럼 여론을 환기시키면서 오히려 제편에서 우리에게 그 무슨 《사과》와 《진상규명》에 대하여 요구하고있다.<br />
                        <br />
                        지어 《국제공조》에 의한 《현지합동조사》까지 실현해보려고 구차하게 여기저기 싸돌아다니는 추태까지 부리고있다. <br />
                        <br />
                        현지조사에 대해 말한다면 죽은 당사자를 금강산관광지에 상주하고있던 남측 인원들이 현지에서 직접 확인하고 넘겨받아간것으로도 충분하다는것이 우리의 립장이다. <br />
                        <br />
따라서 우리는 사건이 발생하면서부터 벌리는 소동을 군복무도 해보지 못한 리명박역도의 군사적무지에서 오는 어리석고 미련한 처사로보았으며 북남관계를 더 험악한 지경에로 몰아가려는 고의적인 반공화국대결책동으로 락인하였다. <br />
                        <br />
지금 리명박패당이 우리 군대가 취한 정정당당한 군사적조치가 북남사이에 체결한 금강산관광법이나 관광지구의 출입, 체류에 관한합의를 란폭하게 위반한것처럼 법석 고아대고있는 리유도 다른데 있지 않다. <br />
                        <br />
                        금강산관광법과 관광지구의 출입, 체류에 관한 합의에 대하여 말한다면 그것은 어디까지나 관광지안에서 관광객들의 신변안전과 무사귀환을 보장하기 위한 사항들을 규제하여놓은것이다. <br />
                        <br />
                        리명박패당은 이러한 규제사항들이 마치도 관광지밖에 있는 우리 군사통제구역안에서도 그대로 적용되는듯이 아전인수격으로 해석하면서 이번 사고의 책임을 우리에게 넘겨씌워보려고 획책하고있다. <br />
                        <br />
특히 리명박역도는 금강산관광이 우리에게 베푸는 그 무슨 《선의》의 산물인것처럼 떠벌이면서 이번 사건의 《진상규명》을 위한《현지합동조사》와 《재발방지대책》, 관광객들에 대한 《신변안전보장조치》 등이 이루어지지 않는 한 관광을 재개할수 없다고 하는가하면 《국민의 생존권》과 관련된 이번 사고는 그 어떤 리유로도 용납될수 없다고 함부로 줴쳐대고있다. <br />
                        <br />
당사자의 잘못으로 발생한 사고를 《국민의 생존권》과 억지로 련결시켜 사실을 요란스럽게 확대과장하여 벌리고있는 리명박역도의 이모든 소동은 남조선인민들의 생명권을 미국산 미친소고기병의 희생물로 만든 책임을 모면하고 그 비난을 우리에게 쏠리게 해보려는 또하나의 유치한 정치적사기극일뿐이다. <br />
                        <br />
                        사실 민족의 생명권과 자주권을 통채로 상전에게 섬겨바치고있는 주제에 《국민의 생존권》을 론하는 그자체가 민심에 대한 참을수 없는 우롱이며 언어도단이다. <br />
                        <br />
현실은 리명박역도가 동결상태에 있는 북남관계를 파국적인 사태에로 몰아가고있으며 이제는 력사적인 6. 15공동선언과 10.4선언을 부정하는데로부터 그 리행을 완전히 파기하는 행동단계에 들어섰다는것을 보여주고있다. <br />
                        <br />
                        리명박역도는 제스스로의 행동으로 《남북관계개선》과 《대화의 재개》에 대한 떠벌임이 여론환기를 위한 빈 넉두리에 지나지 않는다는것을 그대로 드러내보이고있다. <br />
                        <br />
이번 사건을 계기로 금강산관광을 일방적으로 중지하고 무분별한 반공화국대결소동에 계속 매달리고있는 리명박패당의 엄중한 도발행위에대처하여 조선인민군 금강산지구 군부대 대변인은 위임에 따라 다음과 같은 조치를 취하기로 하였다는것을 밝힌다. <br />
                        <br />
                        1. 우리는 금강산관광지구에 체류하고있는 불필요한 남측 인원들을 모두 추방할것이다. <br />
                        <br />
                        2. 금강산지구에 들어오는 남측인원과 차량들에 대한 군사분계선통과를 보다 엄격히 제한, 통제할것이다. <br />
                        <br />
                        3. 앞으로 금강산지구의 관광지와 군사통제구역안에서 나타나는 사소한 적대행위에 대하여 강한 군사적대응조치를 취할것이다. <br />
                        <br />
                        리명박패당은 오늘의 북남관계가 파국적인 사태로 번져가는 경우 시대와 민족앞에 전적인 책임을 지게 될것이다. <br />
                        <br />
                        <br />
                        주체97(2008)년 8월 3일 <br />
                        금 강 산</font> <br />
<br />
출처 통일뉴스<br />
<br />
http://www.tongilnews.com/news/articleView.html?idxno=79676<br />
                        </span>			 ]]> 
		</description>
		<category>기타</category>

		<comments>http://corapollo.egloos.com/657189#comments</comments>
		<pubDate>Sun, 03 Aug 2008 08:06:33 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 배속재생인 경우 SampleGrabber 에서 정확한 SampleTime 얻기 ]]> </title>
		<link>http://corapollo.egloos.com/622109</link>
		<guid>http://corapollo.egloos.com/622109</guid>
		<description>
			<![CDATA[ 
  일단 DirectShow Filter Graph 는 다음과 같이 구성되였다.<br />
SourceFilter-&gt;DecoderFilters-&gt;SampleGrabber-&gt;NullRenderer<br />
이경우 Graph 에 IMediaSeeking::SetRate 로 배속을 설정하고 재생하는 경우 SampleGrabber 의 BufferCB 나 SampleCB 로 들어오는 SampleTime 이 정확한 시간이 아니다.<br />
<br />
정확한 시간을 얻기 위해서는 우선 BufferCB 가 아니라 SampleCB 를 이용하여야 한다.<br />
ISampleGrabber::SetCallback( &amp;videoAdapter, 0);<br />
<br />
다음 ISampleGrabberCB::SampleCB(double SampleTime,&nbsp;&nbsp;&nbsp; IMediaSample *pSample) 에서 다음과 같은 식으로 정확한 시간을 얻을수 있다.<br />
<br />
&nbsp;&nbsp;&nbsp; LONGLONG&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; nTimeStart;<br />
&nbsp;&nbsp;&nbsp; LONGLONG&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; nTimeEnd;<br />
&nbsp;&nbsp;&nbsp; REFERENCE_TIME&nbsp;&nbsp;&nbsp; rTimeStart;<br />
&nbsp;&nbsp;&nbsp; REFERENCE_TIME&nbsp;&nbsp;&nbsp; rTimeEnd;<br />
&nbsp;&nbsp;&nbsp; REFERENCE_TIME&nbsp;&nbsp;&nbsp; rSegStart;<br />
&nbsp;&nbsp;&nbsp; HRESULT hr;<br />
<br />
&nbsp;&nbsp;&nbsp; hr = pSample-&gt;GetMediaTime(&amp;nTimeStart, &amp;nTimeEnd);<br />
&nbsp;&nbsp;&nbsp; hr = pSample-&gt;GetTime(&amp;rTimeStart, &amp;rTimeEnd);<br />
&nbsp;&nbsp;&nbsp; rSegStart = (REFERENCE_TIME)(SampleTime * UNITS) - rTimeStart;<br />
&nbsp;&nbsp;&nbsp; SampleTime = ((rTimeStart * m_dblRate) + rSegStart) / UNITS;<br />
<br />
참조로 http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.directx.audio/2008-01/msg00013.html 에 보면 <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; The SampleGrabber simply does this:<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; IMediaSample::GetTime(&amp;start,&amp;stop);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SampleTime = (double)(start + segStart) /<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; REFTIME_UNITS_PER_SEC;<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; where segStart is the segment starting position after a seek<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (which you have no other way of knowing).<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Where the sample timestamp comes from is beyond the<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SampleGrabber and depends on the exact topology of your<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; graph.<br />
<br />
로 되여 있다.<br />
<br />
			 ]]> 
		</description>
		<category>컴퓨터</category>

		<comments>http://corapollo.egloos.com/622109#comments</comments>
		<pubDate>Fri, 25 Jul 2008 01:06:00 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ CListCtrl 과 WM_TIMER ]]> </title>
		<link>http://corapollo.egloos.com/591611</link>
		<guid>http://corapollo.egloos.com/591611</guid>
		<description>
			<![CDATA[ 
  CListCtrl 클래스로 부터 파생하여 나만의 리스트컨트롤 클래스를 만들었다.<br />
Large Icon View 방식으로 항목들을 현시하고 Multi Seleting 가능하다.<br />
<br />
그런데 구현하고 보니 문제가 생겼다.<br />
<br />
한 항목을 마우스로 클릭하여 선택하고 ListCtrl 을 스크롤 한다음 다음 항목을 추가로 선택하기 위해 Ctrl 키를 누르는 순간 이전에 선택된 항목이 표시되도록 리스트컨트롤이 자동으로 스크롤 된다.<br />
다시 스크롤 한후 Ctrl 키를 누르면 이런 현상이 나타나지 않는다.<br />
살펴보니 Ctrl 키 뿐 아니라 현재 선택된 항목이 보이지 않는 상태에서 아무 건반이나 누르면 선택된 항목으로 자동 스크롤 된다.<br />
다시 누르는 경우에는 문제가 없다.<br />
<br />
아무리 살펴봐도 이해가 되지 않아 다른 리스트컨트롤과 비교끝에 중요한 사실을 알아내였다.<br />
...일반 List Ctrl 인 경우 일부분만 보이는 항목을 선택한 경우 잠시후에 자동으로 스크롤 되여 항목을 완전히 표시한다.<br />
이 잠시후에 자동으로 스크롤 하는 동작을 구현하려면 WM_TIMER Message 를 이용하였을것이다....<br />
<br />
나의 추리는 아주 정확하였다.<br />
나의 컨트롤에서 어떤 이유로 하여 WM_TIMER Message Handler 를 재정의 하였는데 이때 Default 처리부 CListCtrl::OnTimer 를 호출해주지 않았었다.<br />
<br />
처리부 마지막에 CListCtrl::OnTimer 를 호출해주니 문제가 없었다.<br />
살펴보니 일부분만 보이는 항목을 선택한 경우 Timer ID = 43 으로 WM_TIMER 가 발생되였다.<br />
<br />
앞으로 MessageHandler 에서 Default 처리부를 호출해주리라 굳은 결심을 다지였다.<br />
<br />
			 ]]> 
		</description>
		<category>컴퓨터</category>

		<comments>http://corapollo.egloos.com/591611#comments</comments>
		<pubDate>Wed, 16 Jul 2008 09:20:24 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 《아, <리목동>…》 (미친소가 부른 감격의 노래) ]]> </title>
		<link>http://corapollo.egloos.com/434942</link>
		<guid>http://corapollo.egloos.com/434942</guid>
		<description>
			<![CDATA[ 
  <p align="left">출처 : 통일뉴스 <br />
</p><p align="left">http://www.tongilnews.com/news/articleView.html?idxno=78723<br />
<span class="e_white_f"><font color="#000000"><strong></strong></font></span></p><p align="left"><span class="e_white_f"><font color="#000000"><strong><br />
</strong></font></span></p><p align="left"><span class="e_white_f"><font color="#000000"><strong>《아, &lt;리목동&gt;…》 <br />
                        (미친소가 부른 감격의 노래) <br />
                        </strong><br />
                        음메ㅡ <br />
                        나는 성량 풍만한 들판의 가수 <br />
                        죽어 이 땅에 와서 환생을 하여 <br />
                        감격의 노래 한곡 지었네 <br />
                        아 나의 노복 《리목동》에 대한 노래를 <br />
                        <br />
                        내가 태여난 미국에서조차 <br />
                        미친소라 천대받던 나를 <br />
                        동방 반도의 남쪽땅에 <br />
                        《리목동》이 내 있을 자리 <br />
                        품들여 정해주었네 <br />
                        <br />
                        정말이지 생각할수록 <br />
                        눈물이 솨ㅡ솨ㅡ 끊기질 않네 <br />
                        세상 어디가나 랭대받던 나를 <br />
                        《방미선물》로 애지중지 안고와 <br />
                        만사람의 식탁우에 내세워주었지 <br />
                        <br />
                        미친소라 그 저주로운 이름도 <br />
                        《친미소》로 고쳐주었네 <br />
                        내고기 안먹겠다 떼질하는것들도 <br />
                        채찍으로, 몽둥이로 다스려주었네 <br />
                        <br />
                        정말이지 나는 사랑하네 <br />
                        키워준 미국사람들보다 더 <br />
                        하긴 그도 제 민족보다 <br />
                        미국을 더 사랑하니 <br />
                        나도 《리목동》을 더더욱 사랑하네 <br />
                        <br />
                        국민건강을 마스는 대가로 <br />
                        미친소 나를 데려왔다고 <br />
                        사람들은 《리목동》을 죽여라 웨쳐도 <br />
                        목청껏 세상 향해 찬가를 부르네 <br />
                        사랑하는 나의 목동 <br />
                        기특한 《리목동》의 노래를 <br />
                        <br />
                        ㅡ아 목동들의 피리소리들은 <br />
                        원한소리로 바꿔졌건만 <br />
                        미친소 우리 목소리를 합쳐 <br />
                        세상을 향해 노래부르네 <br />
                        이제 내가 풍기는 광우《향기》에 <br />
                        이 땅의 사람 모두 죽어도 <br />
                        《친미소》나와 너는 살리라 <br />
                        아 목동 《리목동》 나의 노복아ㅡ</font></span></p><p align="left"><span class="e_white_f"><font color="#000000"><br />
</font></span></p>                        <p align="left"><span class="e_white_f">&lt;출처-우리 민족끼리 2008.6.5&gt;</span></p>			 ]]> 
		</description>
		<category>기타</category>

		<comments>http://corapollo.egloos.com/434942#comments</comments>
		<pubDate>Thu, 05 Jun 2008 08:27:49 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 뛰는놈, 나는놈 ]]> </title>
		<link>http://corapollo.egloos.com/378371</link>
		<guid>http://corapollo.egloos.com/378371</guid>
		<description>
			<![CDATA[ 
  <span style="font-size: 9pt; color: rgb(0, 0, 0); font-family: Arial RED; height: 150px;"><pre><ul><br />
<font color="#3c3c3c"> <br />
절대주의자 : 뛰는 놈위에는 반드시 나는 놈있다. <br />
<br />
상대주의자 : 뛰는 놈이 있기때문에 나는 놈이 있다. <br />
<br />
낙관주의자 : 뛰는 놈도 언젠가는 날 수 있는 때가 온다. <br />
<br />
비관주의자 : 나는 놈도 언젠가는 뛸 수밖에 없는 때가 온다. <br />
<br />
중도주의자 : 전 평소엔 뛰지만 급하면 날기도 합니다. <br />
<br />
신비주의자 : 뛰는 놈이 곧 나는 놈이다 <br />
<br />
인도주의자 : 뛰는 놈과 나는 놈이 어우러지는 정겨운 세상을 만들어 갑니다.<br />
 <br />
<br />
<br />
<br />
고대수학자 : 뛰는 놈의 발자국은 2로 나누어 떨어질까? <br />
<br />
근대수학자 : 나는 놈의 날개짓은 나눗셈에 대해 닫혀 있을 것이다. <br />
<br />
현대수학자 : 국제 세미나를 열어봐야 알 수 있다. <br />
<br />
위상수학자 : 뛰는 놈은 2차원에 속하고 나는 놈은 3차원에 속한다. <br />
<br />
프랙탈학파 : 뛰는 놈이 2.34차원 위에 있으면 나는 놈은 3.81차원에 있다. <br />
<br />
<br />
<br />
<br />
화학자 : 뛰는 놈보다 나는 놈의 엔트로피가 아무래도 높다. <br />
<br />
생물학자 : 뛰는 놈은 다리가 있고 나는 놈은 날개가 있다. <br />
<br />
대수학자: 뛰는 놈과 나는 놈 사이의 연산은 가환이 아니다. <br />
<br />
해석학자: 뛰는 놈과 나는 놈의 거리 차이의 극한값은 무한대로 발산한다. <br />
<br />
통계학자: 뛰는 놈보다 나는 놈이 위에 있다는 명제는 95%의 유의수준에서 참이다. <br />
<br />
<br />
<br />
<br />
공자 : 뛰는 놈은 나는 놈에게 공손해야 된다. <br />
<br />
부처 : 뛰는 놈이나 나는 놈이나 내 손바닥 안에 있다. <br />
<br />
맹자 : 뛰는 놈이건 나는 놈이건 태어날 때는 둘 다 선하다. <br />
<br />
성철 스님 : 뛰는 놈은 뛰는 놈이요, 나는 놈은 나는 놈이라. <br />
<br />
햄릿 : 뛰느냐 나느냐, 그것이 문제로다. <br />
<br />
<br />
<br />
<br />
라이트 형재 : 나는 놈은 우리가 처음이다. <br />
<br />
마르크스 : 뛰는 놈은 나는 놈에게 착취당한다. <br />
<br />
소크라테스 : 뛰는 놈, 나는 놈들이여! 너 자신을 알라. <br />
<br />
플라톤 : 뛰는 놈은 나는 놈의 모상이다. <br />
<br />
아리스토텔레스 : 뛰는 놈과 나는 놈은 '욕' 의 하위 개념으로 구분 할 수 있다. <br />
<br />
홉스 : 뛰는 놈과 나는 놈은 가만히 놔두면 반드시 싸운다. <br />
<br />
로크 : 뛰는 놈도 태어날 때부터 천부적인 권리를 타고 났다. <br />
<br />
루소 : 뛰는 놈의 의사를 나는 놈이 대표할 수 있다. <br />
<br />
칸트 : 뛰는 놈은 직관적으로 나는 놈이 있다는 것을 알고 있다. <br />
<br />
<br />
<br />
<br />
헤겔 : 뛰는 놈과 나는 놈의 변증법으로 희한한 놈이 나올 것이다. <br />
<br />
다윈 : 뛰는 놈이 진화하면 나는 놈이 된다. <br />
<br />
랑케 : 뛰는 놈, 나는 놈을 사실대로 기록하는 것이 우리가 할 일이다. <br />
<br />
페르마 : 뛰는 놈이 날 수 있는 놀라운 방법을 알고 있으나 여백이 부족하다. <br />
<br />
갈릴레이 : 뛰는 놈이나 나는 놈이나 똑같이 도착한다. <br />
<br />
다빈치 : 나도 날 뻔 했다. 정말이다. <br />
<br />
<br />
<br />
<br />
아인슈타인 : 뛰는 놈보다 나는 놈의 시계가 느리게 가더라. <br />
<br />
스티븐호킹 : 뛰는 놈이 블랙홀에 빨려들 때 나는 놈은 이미 사라졌다. <br />
<br />
프톨레마이오스: 뛰는 놈은 우주의 중심이고 나는 놈은 뛰는 놈 주변을 돈다. <br />
<br />
코페르니쿠스: 뛰는 놈과 나는 놈 모두 태양을 중심으로 돈다. <br />
<br />
케플러: 뛰는 놈과 나는 놈 모두 태양을 중심으로 타원을 그리며 돈다. <br />
<br />
라플라스: 우주 모든 입자들의 초기 조건을 알면 뛰는 놈이 언제 날아갈지 예측할 수 있다. <br />
<br />
<br />
<br />
<br />
파울리 : 뛰는 놈과 나는 놈은 겹칠 수 없다. <br />
<br />
뉴턴 : 뛰는 놈과 나는 놈은 서로 끌어 당긴다. <br />
<br />
뉴턴 : 뛰는 놈은 계속 뛰고 나는 놈은 계속난다. <br />
<br />
라이프니츠: 뛰는 놈과 나는 놈의 미소한 높이 차이를 미소한 시간으로 나누면<br />
<br />
  나는 놈의 순간속도가 된다. 내가 뉴턴보다 먼저 알아냈다! <br />
<br />
칼 포퍼: 뛰는 놈보다 나는 놈이 위에 있다는<br />
 <br />
  명제는 뛰는 놈 밑에 있는 나는 놈을 발견함으로써 반증 가능하다. <br />
<br />
<br />
<br />
<br />
플라톤: 뛰는 놈은 나는 놈의 그림자이고 나는 놈은 뛰는 놈의 이데아이다. <br />
<br />
칸트: 뛰는 놈 위에 나는 놈이 있다는 사실은 경험 이전의 선험적 지식이다. <br />
<br />
헤겔: 정-반-합의 과정을 거쳐 뛰는 놈과 나는 놈은 합일을 이룬다. <br />
<br />
프로이트: 뛰는 놈은 오이디푸스 컴플렉스에 사로잡혀 있어서 날지 못한다. <br />
<br />
스키너: 뛰는 놈은 자극에 대한 반응으로 나는 놈이 된다. <br />
<br />
라캉: 뛰는 놈의 의식이 상상계를 벗어나 상징계로 들어갈 때 나는 놈이 된다.<br />
 <br />
<br />
<br />
<br />
미셸 푸코: 나는 놈은 감시와 처벌로 뛰는 놈이 날지 못하게 통제한다. <br />
<br />
에리히 프롬: 뛰는 놈은 소유적 삶을 살고 나는 놈은 존재적 삶을 산다. <br />
<br />
처칠: 뛰는 놈과 나는 놈 사이에는 철의 장막이 쳐져 있다. <br />
<br />
애덤 스미스 : 뛰는 놈과 나는 놈이 서로 분업한 게 틀림 없다. <br />
<br />
맬서스 : 뛰는 놈보다 나는 놈이 기하급수적으로 빨리 간다. <br />
<br />
리카르도 : 뛰는 놈과 나는 놈은 비교 우위에 의해 서로 득을 본다. <br />
<br />
<br />
<br />
<br />
신고전학파 : 뛰는 놈과 나는 놈은 자유 경쟁 상태에 있다. <br />
<br />
마르크스학파 : 뛰는 놈은 나는 놈에게 착취당한다. <br />
<br />
케인즈학파 : 뛰는 놈을 정부가 구제해 주어야 한다. <br />
<br />
프로이드파 : 뛰는 것은 발기의 상징이요, 나는 것은 절정의 상징이다. <br />
<br />
칼 융 : 뛰는 놈은 주행 컴플렉스, 나는 놈은 비행 컴플렉스에 사로잡혀 있다. <br />
<br />
매카시스트 : 뛰는 놈이 붉갱이면, 나는 놈은 빨갱이다. <br />
<br />
<br />
<br />
<br />
국세청 : 뛰는 놈은 비과세, 나는 놈은 이중과세하겠다. <br />
<br />
국방부 : 뛰는 놈은 육군이고 나는 놈은 공군이다. <br />
<br />
여당의원 : 뛰기제한법과 날기금지법을 임시국회에서 제정해야 한다. <br />
<br />
야당의원 : 뛰는 법과 나는 법의 제정을 결사 반대한다. <br />
<br />
안기부 : 뛰는 놈은 집시법 위반, 나는 놈은 국가보안법 위반이다. <br />
<br />
약장사 : 이 약 한 병만 먹어봐. 뛰는 놈이 날 수 있어! <br />
<br />
안동 양반집 : 뛰는 놈이나 나는 놈이나 다 쌍놈이여! <br />
<br />
학생부교사 :복도에서 뛴 놈은 누구고 자율학습 시간에 날아버린 놈은 누구냐? <br />
<br />
<br />
<br />
<br />
날개형 생리대 : 나는 날개가 있어도 못난다..</font></ul></pre></span>			 ]]> 
		</description>
		<category>기타</category>

		<comments>http://corapollo.egloos.com/378371#comments</comments>
		<pubDate>Fri, 23 May 2008 04:51:40 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 미디어 파일 정보 손쉽게 얻기... ]]> </title>
		<link>http://corapollo.egloos.com/292169</link>
		<guid>http://corapollo.egloos.com/292169</guid>
		<description>
			<![CDATA[ 
  SOURCEFORGE.NET 에 MediaInfo 라는 프로젝트가 있다.<br />
<br />
http://sourceforge.net/projects/mediainfo/<br />
<br />
여기서 제공되는 MediaInfo 클래스로서 임의의 미디어 파일 정보를 손쉽게 얻을수 있다.<br />
<br />
단 3줄로 미디어의 정보를 얻을수 있다.<br />
<br />
&nbsp;&nbsp;&nbsp; MediaInfo MI;<br />
&nbsp;&nbsp;&nbsp; MI.Open(_T("E:\\Video\video.mpeg"));<br />
&nbsp;&nbsp;&nbsp; CString strInfo = MI.Inform().c_str();<br />
<br />
다음과 같은 Text 로 된 정보를 얻는다.<br />
<br />
"General #0<br />
Complete name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : E:\video\video.mpeg<br />
Format&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : MPEG-1 Program<br />
Format/Family&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : MPEG-1<br />
File size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 3.51 MiB<br />
PlayTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 1mn 43s<br />
Bit rate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 283 Kbps<br />
<br />
Video #0<br />
Codec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : MPEG-1 Video<br />
Codec/Family&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : MPEG-V<br />
Codec settings, Matrix&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Standard<br />
PlayTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 1mn 43s<br />
Bit rate mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : VBR<br />
Bit rate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 200 Kbps<br />
Width&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 320 pixels<br />
Height&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 240 pixels<br />
Display Aspect ratio&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 4/3<br />
Frame rate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 29.970 fps<br />
Interlacement&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : Progressive<br />
<br />
Audio #0<br />
Codec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : MPEG-1 Audio layer 2<br />
PlayTime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 1mn 43s<br />
Bit rate mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : CBR<br />
Bit rate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 64.0 Kbps<br />
Channel(s)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 2 channels<br />
Sampling rate&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 44.1 KHz<br />
Resolution&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : 16 bits<br />
<br />
<br />
"<br />
이 외 에도 어떠한 항목을 지정하여 얻을수도 있다.<br />
<br />
http://sourceforge.net/projects/mediainfo/ 에서 소스코드를 무료로 다운 받을수 있으며<br />
또한 http://mediainfo.sourceforge.net/ko 에서 MediaInfo 프로그램을 무료로 다운받을수 있다.<br />
			 ]]> 
		</description>
		<category>컴퓨터</category>

		<comments>http://corapollo.egloos.com/292169#comments</comments>
		<pubDate>Wed, 30 Apr 2008 13:17:38 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ LeaveCriticalSection 한번만 호출하기 ]]> </title>
		<link>http://corapollo.egloos.com/257331</link>
		<guid>http://corapollo.egloos.com/257331</guid>
		<description>
			<![CDATA[ 
  CRITICAL_SECTION 는 한 프로세스내에서의 동기화를 위한 object이다.<br />
<br />
http://msdn2.microsoft.com/en-us/library/ms682530.aspx<br />
<br />
이미 CRITICAL_SECTION 을 소유한 스레드가 다시 EnterCriticalSection 으로 그것을 소유하려고 하는경우 에러없이 넘어간다.<br />
그러나 한번 LeaveCriticalSection 으로 CRITICAL_SECTION 을 해제한 다음 다시LeaveCriticalSection 을 호출하면, 즉 소유하지 않는 스레드에서 LeaveCriticalSection 을 호출하면 다음번 EnterCriticalSection 호출시에 deadlock 이 발생한다.<br />
<br />
이것을 막자면 현재 스레드가 그 Critical section 을 소유하고 있는 경우에만 LeaveCriticalSectin 을 호출하도록 하여야 한다.<br />
<br />
아래와 같이 동기화 클래스를 만들면 이 문제를 해결할수 있다.<br />
<br />
*** 더 좋은 방법을 알려주시면 감사하겠습니다...<br />
<br />
class CSingleCriticalSection<br />
{<br />
public:<br />
&nbsp;&nbsp;&nbsp; CSingleCriticalSection();<br />
&nbsp;&nbsp;&nbsp; ~CSingleCriticalSection();<br />
&nbsp;&nbsp;&nbsp; BOOL IsCurrentThreadLocked();<br />
&nbsp;&nbsp;&nbsp; void Lock();<br />
&nbsp;&nbsp;&nbsp; void Unlock();<br />
protected:<br />
&nbsp;&nbsp;&nbsp; CCriticalSection m_section;<br />
&nbsp;&nbsp;&nbsp; DWORD&nbsp;&nbsp;&nbsp; volatile m_dwThreadId;<br />
};<br />
<br />
inline CSingleCriticalSection::CSingleCriticalSection()<br />
{ <br />
&nbsp;&nbsp;&nbsp; InterlockedExchange((PLONG)&amp;m_dwThreadId, 0);<br />
}<br />
<br />
inline CSingleCriticalSection::~CSingleCriticalSection()<br />
{<br />
&nbsp;&nbsp;&nbsp; Unlock();<br />
}<br />
<br />
BOOL inline CSingleCriticalSection::IsCurrentThreadLocked() <br />
{ <br />
&nbsp;&nbsp;&nbsp; return m_dwThreadId &amp;&amp; m_dwThreadId == GetCurrentThreadId(); <br />
}<br />
<br />
void inline CSingleCriticalSection::Lock() <br />
{ <br />
&nbsp;&nbsp;&nbsp; if(!IsCurrentThreadLocked())<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_section.Lock();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; InterlockedExchange((PLONG)&amp;m_dwThreadId, (LONG)GetCurrentThreadId());<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
<br />
void inline CSingleCriticalSection::Unlock()<br />
{<br />
&nbsp;&nbsp;&nbsp; if(IsCurrentThreadLocked())<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; m_section.Unlock();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; InterlockedExchange((PLONG)&amp;m_dwThreadId, (LONG)0);<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
			 ]]> 
		</description>
		<category>컴퓨터</category>

		<comments>http://corapollo.egloos.com/257331#comments</comments>
		<pubDate>Sat, 19 Apr 2008 11:12:18 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Windows XP Style 에서 Slider Control 에 selection 설정하기 ]]> </title>
		<link>http://corapollo.egloos.com/200744</link>
		<guid>http://corapollo.egloos.com/200744</guid>
		<description>
			<![CDATA[ 
  CSliderCtrl 클래스에는 <span id="nsrTitle">SetSelection</span> 함수가 있어 특정영역을 하이라이트 시킬수 있다.<br />
그러나 Windows XP 에서 classic style 인 경우는 제대로 동작하나 XP style 인 경우에는 하이라이트가 안된다.<br />
이경우에는 NM_CUSTOMDRAW Notify message 를 처리하여 그리기를 진행하여야 한다.<br />
<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200804/01/28/f0015628_47f10714c0d7c.jpg" width="500" height="21.4968152866" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200804/01/28/f0015628_47f10714c0d7c.jpg');" /></div><br />
SetSelection 함수로 하이라이트 시키려면 Slider Control 의 TBS_ENABLESELRANGE 속성을 설정하여야 한다.<br />
<br />
void CMySliderCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)<br />
{<br />
&nbsp;&nbsp;&nbsp; NMCUSTOMDRAW *pNmcd = (NMCUSTOMDRAW *)pNMHDR;<br />
<br />
&nbsp;&nbsp;&nbsp; switch( pNmcd-&gt;dwDrawStage ) {<br />
&nbsp;&nbsp;&nbsp; case CDDS_PREPAINT:<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if( GetStyle() &amp; TBS_ENABLESELRANGE ) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *pResult = CDRF_NOTIFYITEMDRAW;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp; case CDDS_ITEMPREPAINT:<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; switch( pNmcd-&gt;dwItemSpec ) {<br />
&nbsp;&nbsp;&nbsp; case TBCD_CHANNEL: {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CDC *pDC = CDC::FromHandle(pNmcd-&gt;hdc);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CRect rcChannel;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GetChannelRect(&amp;rcChannel);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rcChannel.DeflateRect(6, 3);<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; int min, max, selmin, selmax;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GetRange(min, max);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; GetSelection(selmin, selmax);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; max -= min;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; selmin = (int)(((double)(selmin - min) / max * rcChannel.Width()) + 0.5) + rcChannel.left;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; selmax = (int)(((double)(selmax - min) / max * rcChannel.Width()) + 0.5) + rcChannel.left;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rcChannel.left = selmin;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rcChannel.right = selmax;<br />
<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pDC-&gt;FillSolidRect(rcChannel, RGB(255, 0, 0));<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pDC-&gt;ExcludeClipRect(rcChannel);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; *pResult = CDRF_DODEFAULT | CDRF_NOTIFYPOSTPAINT;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp; case CDDS_ITEMPOSTPAINT:<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; switch( pNmcd-&gt;dwItemSpec ) {<br />
&nbsp;&nbsp;&nbsp; case TBCD_CHANNEL: {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CDC *pDC = CDC::FromHandle(pNmcd-&gt;hdc);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pDC-&gt;SelectClipRgn(NULL);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;}<br />
			 ]]> 
		</description>
		<category>컴퓨터</category>

		<comments>http://corapollo.egloos.com/200744#comments</comments>
		<pubDate>Mon, 31 Mar 2008 15:45:50 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ C++ 에서 UINT 와 int 계산규칙은 도대체 어떻게 되였는가? ]]> </title>
		<link>http://corapollo.egloos.com/188197</link>
		<guid>http://corapollo.egloos.com/188197</guid>
		<description>
			<![CDATA[ 
  C++ 에서 -10 / (UINT)5 = 858993457,&nbsp; (UINT)10 / (-5) = 0 이다!<br />
<br />
UINT m = 10;<br />
UINT n = 5;<br />
int s = -(int)m / n;<br />
하면 s = 858993457<br />
int s = m / (-(int)n);<br />
하면 s = 0 이 된다.<br />
이렇게 안하고도 그냥 watch 창에 -10 / (UINT)5 , (UINT)10 / (-5) 하고 넣으면 <br />
858993457 과 0 이 나온다.<br />
이것때문에 꼬박 33분33초를 고민했다.<br />
<br />
ps: 왜 이렇게 되는지 알려주시면 감사하겠습니다.<br />
			 ]]> 
		</description>
		<category>컴퓨터</category>

		<comments>http://corapollo.egloos.com/188197#comments</comments>
		<pubDate>Thu, 27 Mar 2008 11:17:36 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
	<item>
		<title><![CDATA[ GDI+ 에서 bottom-up Bitmap 창조하기 ]]> </title>
		<link>http://corapollo.egloos.com/179687</link>
		<guid>http://corapollo.egloos.com/179687</guid>
		<description>
			<![CDATA[ 
  GDI+ 에서 지정한 픽셀자료에 대한 Bitmap 을 창조하기 위해서는<name></name> Bitmap(INT width,INT height, INT stride, PixelFormat format, BYTE *scan0);&nbsp; 구성자를 사용할수 있다.<br />
<br />
이때 scan0 이 bottom-up Bitmap 자료인 경우 scan0 은 비트맵 자료의 시작이 아니라 제일 마지막 scan line 의 시작주소여야 한다.<br />
그렇지 않은경우 Unhandled Exeption 이 발생한다.<br />
<br />
http://support.microsoft.com/kb/317309<br />
<br />
<!-- @ --><style type="text/css">	PRE.clsCode { font-size:110%; } 	PRE.clsSyntax { font-size:100%; }  	TD DIV.clsBeta { display:none;}  	A:link { color:#0000ff; text-decoration:underline;}	A:visited { color:#0000ff; text-decoration:underline;}	A:hover { color:#3366ff; text-decoration:underline;}MSHelp\:link {    color:#0000ff;    text-decoration:underline;    cursor:hand;    hoverColor:#3366ff;    filterString: ;}</style>	//<!--	var gbDBG = false;	//-->//<!--var gsHTCPath = "../../../../code/";//-->//<!--var gsContextMenuPath = gsHTCPath + "contextmenu.htc";var gsCodeDecoPath = gsHTCPath + "codedeco.htc";var gsStoreName="gdiplus";var gsGraphicsPath = "/gdiplus/graphics/";//-->//<!--//-->//<!--//--><link href="../../../../css/advSDKATIE4.css" type="text/css" rel="stylesheet"><!-- @ --><!-- @ -->//<!--function InitPage(){  if (!assert( (typeof(oBD) == 'object' && oBD != null), "browdata object unavailable!") )  {    return;  }  if ("MSIE" == oBD.browser && oBD.majorVer >= 5 && (oBD.platform.toLowerCase()!="x" && oBD.platform!="Mac" && oBD.platform!="PPC" ))  {    if (typeof(PreInit) == 'function') PreInit();        if (typeof(fnATInit) == 'function') fnATInit();    if (typeof(PostGBInit) == 'function') PostGBInit();    if (typeof(PostInit) == 'function') PostInit();    if (typeof(initTabbedMembers) == 'function') initTabbedMembers();    if (typeof(hideExamples) == 'function') hideExamples();  }  if (oBD.getsNavBar && oBD.platform!="PPC" )  {    if (typeof(SetShowMes) == 'function') SetShowMes();  }}function assert(bCond, sMsg){  if (bCond) { return true; }  else { if (gbDBG) { alert(sMsg); } return false; }}window.onload = InitPage;//--><ph:chm><link href="ms-help://Hx/HxRuntime/HxLink.css" type="text/css" rel="stylesheet"></ph:chm><ph:data><xml id="_topicdata" pagetype="method" proj="GDIPlusHXS" name="Bitmap" pubpath="/GDIPlus/GDIPlusReference/Classes/BitmapClass/BitmapConstructors/Bitmap_55width_height_stride_format_scan0.htm"><!-- topic data --><root><product rid="prod_GDIP" minver="1.0"></product></root></xml></ph:data><xml xmlns:mshelp="http://msdn.microsoft.com/mshelp"><mshelp:Keyword index="A" term="_gdiplus_CLASS_Bitmap_Bitmap_width_height_stride_format_scan0_"></mshelp:Keyword><mshelp:Keyword index="A" term="_gdiplus_CLASS_Bitmap_Class_gdiplus_CLASS_Bitmap_Bitmap_width_height_stride_format_scan0__cpp"></mshelp:Keyword><mshelp:TOCTitle title="Bitmap Constructor"></mshelp:TOCTitle><mshelp:RLTitle title="Bitmap Constructor (BitmapBitmap)"></mshelp:RLTitle><mshelp:Keyword index="F" term="Bitmap"></mshelp:Keyword><mshelp:Keyword index="K" term="Bitmap"></mshelp:Keyword><mshelp:Attr name="TopicType" value="kbRef"></mshelp:Attr><mshelp:Attr name="Locale" value="kbEnglish"></mshelp:Attr><mshelp:Attr name="DevLang" value="C++"></mshelp:Attr><mshelp:Attr name="Technology" value="GDI+"></mshelp:Attr><mshelp:Attr name="TechnologyVers" value="kbGDI+"></mshelp:Attr><mshelp:Attr name="DocSet" value="WCSDK"></mshelp:Attr><mshelp:Attr name="DocSet" value="LHSDK"></mshelp:Attr><mshelp:Attr name="DocSet" value="PSDK"></mshelp:Attr><mshelp:Attr name="TargetOS" value="Windows"></mshelp:Attr><mshelp:Attr name="APIName" value="Bitmap.Bitmap"></mshelp:Attr><mshelp:Attr name="TopicType" value="apiref"></mshelp:Attr><mshelp:Attr name="APIName" value="Bitmap"></mshelp:Attr><mshelp:Attr name="APIType" value="COM"></mshelp:Attr><mshelp:Attr name="APILocation" value="gdiplus.dll"></mshelp:Attr><mshelp:Attr name="TopicType" value="kbSyntax"></mshelp:Attr></xml><div class="clsDocBody" topicname="Bitmap"><blockquote xmlns:xsl="http://www.w3.org/TR/WD-xsl"><pre class="clsSyntax"></pre></blockquote></div> <name></name><link href="../../../../css/inetsdk.css" type="text/css" rel="stylesheet"><!-- @ --><style type="text/css">	PRE.clsCode { font-size:110%; } 	PRE.clsSyntax { font-size:100%; }  	TD DIV.clsBeta { display:none;}  	A:link { color:#0000ff; text-decoration:underline;}	A:visited { color:#0000ff; text-decoration:underline;}	A:hover { color:#3366ff; text-decoration:underline;}MSHelp\:link {    color:#0000ff;    text-decoration:underline;    cursor:hand;    hoverColor:#3366ff;    filterString: ;}</style>	//<!--	var gbDBG = false;	//-->//<!--var gsHTCPath = "../../../../code/";//-->//<!--var gsContextMenuPath = gsHTCPath + "contextmenu.htc";var gsCodeDecoPath = gsHTCPath + "codedeco.htc";var gsStoreName="gdiplus";var gsGraphicsPath = "/gdiplus/graphics/";//-->//<!--//-->//<!--//--><link href="../../../../css/advSDKATIE4.css" type="text/css" rel="stylesheet"><!-- @ --><!-- @ -->//<!--function InitPage(){  if (!assert( (typeof(oBD) == 'object' && oBD != null), "browdata object unavailable!") )  {    return;  }  if ("MSIE" == oBD.browser && oBD.majorVer >= 5 && (oBD.platform.toLowerCase()!="x" && oBD.platform!="Mac" && oBD.platform!="PPC" ))  {    if (typeof(PreInit) == 'function') PreInit();        if (typeof(fnATInit) == 'function') fnATInit();    if (typeof(PostGBInit) == 'function') PostGBInit();    if (typeof(PostInit) == 'function') PostInit();    if (typeof(initTabbedMembers) == 'function') initTabbedMembers();    if (typeof(hideExamples) == 'function') hideExamples();  }  if (oBD.getsNavBar && oBD.platform!="PPC" )  {    if (typeof(SetShowMes) == 'function') SetShowMes();  }}function assert(bCond, sMsg){  if (bCond) { return true; }  else { if (gbDBG) { alert(sMsg); } return false; }}window.onload = InitPage;//--><ph:chm></ph:chm><ph:data><xml id="_topicdata" pagetype="method" proj="GDIPlusHXS" name="Bitmap" pubpath="/GDIPlus/GDIPlusReference/Classes/BitmapClass/BitmapConstructors/Bitmap_55width_height_stride_format_scan0.htm"><!-- topic data --><root><product rid="prod_GDIP" minver="1.0"></product></root></xml></ph:data><xml xmlns:mshelp="http://msdn.microsoft.com/mshelp"><mshelp:Keyword index="A" term="_gdiplus_CLASS_Bitmap_Bitmap_width_height_stride_format_scan0_"></mshelp:Keyword><mshelp:Keyword index="A" term="_gdiplus_CLASS_Bitmap_Class_gdiplus_CLASS_Bitmap_Bitmap_width_height_stride_format_scan0__cpp"></mshelp:Keyword><mshelp:TOCTitle title="Bitmap Constructor"></mshelp:TOCTitle><mshelp:RLTitle title="Bitmap Constructor (BitmapBitmap)"></mshelp:RLTitle><mshelp:Keyword index="F" term="Bitmap"></mshelp:Keyword><mshelp:Keyword index="K" term="Bitmap"></mshelp:Keyword><mshelp:Attr name="TopicType" value="kbRef"></mshelp:Attr><mshelp:Attr name="Locale" value="kbEnglish"></mshelp:Attr><mshelp:Attr name="DevLang" value="C++"></mshelp:Attr><mshelp:Attr name="Technology" value="GDI+"></mshelp:Attr><mshelp:Attr name="TechnologyVers" value="kbGDI+"></mshelp:Attr><mshelp:Attr name="DocSet" value="WCSDK"></mshelp:Attr><mshelp:Attr name="DocSet" value="LHSDK"></mshelp:Attr><mshelp:Attr name="DocSet" value="PSDK"></mshelp:Attr><mshelp:Attr name="TargetOS" value="Windows"></mshelp:Attr><mshelp:Attr name="APIName" value="Bitmap.Bitmap"></mshelp:Attr><mshelp:Attr name="TopicType" value="apiref"></mshelp:Attr><mshelp:Attr name="APIName" value="Bitmap"></mshelp:Attr><mshelp:Attr name="APIType" value="COM"></mshelp:Attr><mshelp:Attr name="APILocation" value="gdiplus.dll"></mshelp:Attr><mshelp:Attr name="TopicType" value="kbSyntax"></mshelp:Attr></xml><div class="clsDocBody" topicname="Bitmap"><blockquote xmlns:xsl="http://www.w3.org/TR/WD-xsl"><pre class="clsSyntax"></pre></blockquote></div>			 ]]> 
		</description>
		<category>컴퓨터</category>

		<comments>http://corapollo.egloos.com/179687#comments</comments>
		<pubDate>Tue, 25 Mar 2008 02:56:57 GMT</pubDate>
		<dc:creator>아폴로</dc:creator>
	</item>
</channel>
</rss>
