<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7121227308542138112</id><updated>2012-02-11T01:25:23.835-08:00</updated><category term='Snippet'/><category term='iPhone'/><category term='яблокодинг'/><category term='Cocoa'/><category term='железяки'/><category term='App Store'/><category term='Text Input'/><category term='мысли в цифре'/><category term='WinAPI'/><category term='DirectX'/><category term='программирование'/><category term='Dead Keys'/><category term='.NET'/><category term='OpenGL'/><title type='text'>@musinov</title><subtitle type='html'>Программирование как образ жизни...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-4120293267815009163</id><published>2012-01-22T00:34:00.000-08:00</published><updated>2012-01-22T00:35:32.239-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='яблокодинг'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><title type='text'>OpenGL FBO</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Разнообразие вендоров железа "обогатило" в прекрасном смысле этого слова рендеринг в текстуру. Какая только экзотика не была ( p-buffer ). На данный момент есть вменяемый вариант RTT через расширение &lt;b&gt;EXT_framebuffer_object&lt;/b&gt;. &amp;nbsp;Вся идея данного расширения сводится к добавлению нового объекта FBO ( frame buffer object ). К этому объекту можно сделать привязку различных объектов, будь то буфер цвета, глубины, трафарет или RBO (renderbuffer object).&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Приступим к написанию кода&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Для начала проверяем поддержку данного расширения&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_0673971054" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left: 3px solid #6CE26C; color: #5c5c5c; line-height: 14px; list-style-position: outside; list-style: decimal; margin: 0px 0px 1px 45px !important; padding: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;-&amp;nbsp;(BOOL)&amp;nbsp;initFBO&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008200;"&gt;//&amp;nbsp;check&amp;nbsp;extension&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;const&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;GLubyte*&amp;nbsp;extensions&amp;nbsp;=&amp;nbsp;glGetString&amp;nbsp;(&amp;nbsp;GL_EXTENSIONS&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;extensions&amp;nbsp;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;(gluCheckExtension((GLubyte*)(&lt;/span&gt;&lt;span style="color: blue;"&gt;"GL_EXT_framebuffer_object"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;),&amp;nbsp;extensions))&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;YES;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;NO;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Создаем текстуру в которую будем рендерить&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;ol style="background-color: white; border-left: 3px solid #6CE26C; color: #5c5c5c; line-height: 14px; list-style-position: outside; list-style: decimal; margin: 0px 0px 1px 45px !important; padding: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;GLuint&amp;nbsp;textureId&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glGenTextures&amp;nbsp;(&amp;nbsp;1,&amp;nbsp;&amp;amp;textureId&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glBindTexture&amp;nbsp;(&amp;nbsp;GL_TEXTURE_2D,&amp;nbsp;textureId&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glTexParameteri&amp;nbsp;(&amp;nbsp;GL_TEXTURE_2D,&amp;nbsp;GL_TEXTURE_MAG_FILTER,&amp;nbsp;GL_NEAREST&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glTexParameteri&amp;nbsp;(&amp;nbsp;GL_TEXTURE_2D,&amp;nbsp;GL_TEXTURE_MIN_FILTER,&amp;nbsp;GL_NEAREST&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glTexImage2D&amp;nbsp;(&amp;nbsp;GL_TEXTURE_2D,&amp;nbsp;0,&amp;nbsp;4,&amp;nbsp;TextureWidth,&amp;nbsp;TextureHeight,&amp;nbsp;0,&amp;nbsp;GL_RGBA,&amp;nbsp;GL_UNSIGNED_BYTE,&amp;nbsp;0&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Создаем FBO объект&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_2010991841" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left: 3px solid #6CE26C; color: #5c5c5c; line-height: 14px; list-style-position: outside; list-style: decimal; margin: 0px 0px 1px 45px !important; padding: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;GLuint&amp;nbsp;frameBufferId;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glGenFramebuffersEXT&amp;nbsp;(&amp;nbsp;1,&amp;nbsp;&amp;amp;frameBufferId&amp;nbsp;);&amp;nbsp;&lt;span style="color: #008200;"&gt;//&amp;nbsp;0&amp;nbsp;-&amp;nbsp;это&amp;nbsp;главный&amp;nbsp;буфер,&amp;nbsp;очевидно&amp;nbsp;что&amp;nbsp;id&amp;nbsp;&amp;gt;&amp;nbsp;0&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glBindFramebufferEXT&amp;nbsp;(&amp;nbsp;GL_FRAMEBUFFER_EXT,&amp;nbsp;frameBufferId&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glFramebufferTexture2DEXT&amp;nbsp;(&amp;nbsp;GL_FRAMEBUFFER_EXT,&amp;nbsp;GL_COLOR_ATTACHMENT0_EXT,&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;GL_TEXTURE_2D,&amp;nbsp;textureId,&amp;nbsp;0&amp;nbsp;);&amp;nbsp;&lt;span style="color: #008200;"&gt;//привязываем&amp;nbsp;тексту&amp;nbsp;к&amp;nbsp;фрэймбуфер&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: #008200;"&gt;//&amp;nbsp;проверяем&amp;nbsp;буфер&amp;nbsp;(&amp;nbsp;код&amp;nbsp;ниже&amp;nbsp;)&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: #008200;"&gt;//&amp;nbsp;...&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glBindFramebufferEXT&amp;nbsp;(&amp;nbsp;GL_FRAMEBUFFER_EXT,&amp;nbsp;0&amp;nbsp;);&amp;nbsp;&lt;span style="color: #008200;"&gt;//&amp;nbsp;восстанавливаем&amp;nbsp;главный&amp;nbsp;буфер&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;Проверка буфера &lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_2758316903" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left: 3px solid #6CE26C; color: #5c5c5c; line-height: 14px; list-style-position: outside; list-style: decimal; margin: 0px 0px 1px 45px !important; padding: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;GLenum&amp;nbsp;status&amp;nbsp;=&amp;nbsp;glCheckFramebufferStatusEXT&amp;nbsp;(&amp;nbsp;GL_FRAMEBUFFER_EXT&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;status&amp;nbsp;!=&amp;nbsp;GL_FRAMEBUFFER_COMPLETE_EXT&amp;nbsp;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;switch&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;status&amp;nbsp;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;case&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog(@&lt;span style="color: blue;"&gt;"FrameBuffer&amp;nbsp;Error&amp;nbsp;-&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;case&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog(@&lt;span style="color: blue;"&gt;"FrameBufferErGL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;case&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog(@&lt;span style="color: blue;"&gt;"FrameBuffer&amp;nbsp;Error&amp;nbsp;-&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;case&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog(@&lt;span style="color: blue;"&gt;"FrameBuffer&amp;nbsp;Error&amp;nbsp;-&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;case&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog(@&lt;span style="color: blue;"&gt;"FrameBuffer&amp;nbsp;Error&amp;nbsp;-&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;case&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog(@&lt;span style="color: blue;"&gt;"FrameBuffer&amp;nbsp;Error&amp;nbsp;-&amp;nbsp;GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;case&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;GL_FRAMEBUFFER_UNSUPPORTED_EXT:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog(@&lt;span style="color: blue;"&gt;"FrameBuffer&amp;nbsp;Error&amp;nbsp;-&amp;nbsp;GL_FRAMEBUFFER_UNSUPPORTED_EXT"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;default&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog(@&lt;span style="color: blue;"&gt;"FrameBuffer&amp;nbsp;Error&amp;nbsp;-&amp;nbsp;Unknown&amp;nbsp;error"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;break&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;NO;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;Разумеется можно еще добавить создание буфера глубины или трафарета, сделать привязку к данному FBO.Если все успешно создалось то можно рендерить в текстуру. &lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_1817233451" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left-color: rgb(108, 226, 108); border-left-style: solid; border-left-width: 3px; line-height: 14px; list-style-image: initial; list-style-position: initial; list-style-type: decimal; margin-bottom: 1px !important; margin-left: 45px !important; margin-right: 0px !important; margin-top: 0px !important; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glBindFramebufferEXT&amp;nbsp;(&amp;nbsp;GL_FRAMEBUFFER_EXT,&amp;nbsp;frameBufferId&amp;nbsp;);&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008200;"&gt;//&amp;nbsp;выставляем&amp;nbsp;нужный нам&amp;nbsp;буфер&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glClearColor&amp;nbsp;(&amp;nbsp;0.0f,&amp;nbsp;0.0f,&amp;nbsp;1.0f,&amp;nbsp;1.0f&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glClear&amp;nbsp;(&amp;nbsp;GL_COLOR_BUFFER_BIT&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: #008200;"&gt;//&amp;nbsp;что-то&amp;nbsp;рисуем&amp;nbsp;в&amp;nbsp;текстуру&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;( корректируем все матрицы )&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: #008200;"&gt;//&amp;nbsp;...&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;glBindFramebufferEXT&amp;nbsp;(&amp;nbsp;GL_FRAMEBUFFER_EXT,&amp;nbsp;0&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008200;"&gt;//&amp;nbsp;восстанавливаем&amp;nbsp;буфера&amp;nbsp;окна&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Теперь у нас в текстуре которая была привязана к данному framebuffer объекту находится то что нам нужно. Можем с ней работать как с обычной текстурой. Отрисовать всю сцену в текстуру и применить эфффект блюра. &amp;nbsp;И конечно не забывайте удалять текстуры и буфера &lt;b&gt;;-)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="https://github.com/osx84/Example-OpenGL-FBO"&gt;Example OpenGL FBO (github)&lt;/a&gt;&amp;nbsp;готовый пример показывает наглядно как с этим работать&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-FNp1tBzim3A/TxvJQ6CtucI/AAAAAAAAAJI/Nbekic-CWpc/s1600/Screen+Shot+2012-01-22+at+12.22.50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="387" src="http://3.bp.blogspot.com/-FNp1tBzim3A/TxvJQ6CtucI/AAAAAAAAAJI/Nbekic-CWpc/s640/Screen+Shot+2012-01-22+at+12.22.50.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-4120293267815009163?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/4120293267815009163/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=4120293267815009163' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4120293267815009163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4120293267815009163'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2012/01/opengl-fbo.html' title='OpenGL FBO'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-FNp1tBzim3A/TxvJQ6CtucI/AAAAAAAAAJI/Nbekic-CWpc/s72-c/Screen+Shot+2012-01-22+at+12.22.50.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-3450267304750254254</id><published>2012-01-08T07:13:00.000-08:00</published><updated>2012-01-08T07:30:20.424-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Cocoa'/><category scheme='http://www.blogger.com/atom/ns#' term='яблокодинг'/><title type='text'>Забавный баг XCode 4.2</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;На данный момент xcode до той же visal studio далеко. Не факт что это изменится в ближайшем будущем. Виной тому весьма плохое отношение разработчиков среды разработки от эпл. В четверке сделали приятное разработчикам разрешили иметь некий аналог солюшенов, много глобальных изменений. Но есть одна фича которой приятно пользоваться, потому как она автоматизирует процесс привязки gui контролов с кодом ( actions &amp;amp; properties ).&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Взглянем на солюшен с двуми проектами один из которых вложенный.&lt;br /&gt;Добавим для формы из второго проекта кнопку. Проведем связь из IB в код для создания @property-кнопки ( не так важно свойство или метод ).&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-DvDMKDkSSsI/TwmzpOg-aeI/AAAAAAAAAI0/jBPmbnBRrDU/s1600/Screen+Shot+2012-01-08+at+19.04.16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-DvDMKDkSSsI/TwmzpOg-aeI/AAAAAAAAAI0/jBPmbnBRrDU/s640/Screen+Shot+2012-01-08+at+19.04.16.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Теперь посмотрим чего же там в итоге то получается. О! В хедер корректно добавлось свойство-кнопка. Но где же описание ? Увы оно в другой проект прописалось.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-zuexWzJ0rjU/Twmzr0QSqZI/AAAAAAAAAI8/jOf_VeRVG_g/s1600/Screen+Shot+2012-01-08.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-zuexWzJ0rjU/Twmzr0QSqZI/AAAAAAAAAI8/jOf_VeRVG_g/s640/Screen+Shot+2012-01-08.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Возможно этот баг уже поправили. Критичным его назвать сложно. Но в целом можно судить что работа с солюшенами по аналогии с той же студией от микрософт, пока реализована не так хорошо. &amp;nbsp;Новую морду нацепили, а в результата одни мелкие недоработки.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-3450267304750254254?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/3450267304750254254/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=3450267304750254254' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/3450267304750254254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/3450267304750254254'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2012/01/xcode-42.html' title='Забавный баг XCode 4.2'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-DvDMKDkSSsI/TwmzpOg-aeI/AAAAAAAAAI0/jBPmbnBRrDU/s72-c/Screen+Shot+2012-01-08+at+19.04.16.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-4874130453453799215</id><published>2012-01-01T06:58:00.000-08:00</published><updated>2012-01-03T11:04:27.814-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='железяки'/><title type='text'>Железяка Amazon Kindle Touch</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Прогресс не стоит на месте. Цены падают, устройства становятся более доступныеми для простых смертных. Первая книга с тачем от амазона. Психологический барьер в 100 баксов преодолен ( мне по такой цене удалось заполучить перед НГ девайс, увы c рекламой правда ). Несоменно сравнивать с другими аналогими смысла нету. C тем же Nook, где после некоторых усилий читалку можно превратить в псевдо планшет на электронной бумаге с полноценным андройдом на борту. Но это все лирика. Вернемся к киндлу четвертого поколения.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;В общих чертах плюсы&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;+ сенсорный экран ( это удобно после ipad, iphone и прочих устройств подобной тематики )&lt;/div&gt;&lt;div&gt;+ перелистывание теперь более шустрое ( если сравнивать с третьим поколением )&lt;/div&gt;&lt;div&gt;+ заметки&lt;/div&gt;&lt;div&gt;+ качественная сборка ( ничего не хрустит, не скользит приятный на ощупь пластик )&lt;/div&gt;&lt;div&gt;+ цена ( вы получаете то что вам нужно без всяких не нужных наворотов )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;b&gt;В числе минусов хотелось бы отметить&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;- пока сырая прошивка ( мало настроек, поворачивать экран нельзя )&lt;/div&gt;&lt;div&gt;- прощаю что нету поддержки fb2, но где поддержка epub ????&lt;/div&gt;&lt;div&gt;- официально киндл в нашей стране не продается, поэтому ощутить все прелести от платного &amp;nbsp;контента не получится&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Киндл четвертого поколение, эволюционное устройство. Плюсом стало что убрали не нужную механическую клавиатуру. Решать что взять либо киндл с пятью кнопками или с тачем, остается на предпочтениях конечного пользователя.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-4874130453453799215?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/4874130453453799215/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=4874130453453799215' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4874130453453799215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4874130453453799215'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2012/01/amazon-kindle-touch.html' title='Железяка Amazon Kindle Touch'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-3340440276647904035</id><published>2011-10-02T10:20:00.000-07:00</published><updated>2011-10-02T10:23:35.064-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мысли в цифре'/><category scheme='http://www.blogger.com/atom/ns#' term='яблокодинг'/><title type='text'>Немного "the aperture"</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Получили отзыв, что не плохо было бы иметь поддержку Aperture. До этого конечно были письма в том же ключе. Отзыв в сторе это намного серьезнее. Скачал, установил творение apple. Программа очень удобная в плане хранения фототеки, фильтры, поддержка raw, в общем все фишки серьезного продукта для работы с фотографиями. Посмотрел как устроено описание фототеки. Аналогия iphoto - xml файлы с описанием всего и вся. Особой сложности при разборе нету, прочесть список ключей фотографий и по ним получить пути к файлам, дальше разбор по альбомам или проектам. Сказано - сделано. Реализовал поддержку aperture - медиа библиотек. Все прекрасно работало пока не отослал для тестирования программу заинтересованым лицам. Итог - ничего не показывается и ничего не работает. В результате неспешной переписки, выясняется что есть несколько способов импорта контента и разумеется несколько способов&amp;nbsp;использования этих самых фототек. Приведу парочку вариантов, один от человека у которого aperture - программа номер один на компе. Второй фотолюбитель со стажем.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Например, пользователь имеет внушительную коллекцию фотографий (750GB), но каждый раз таскать дополнительный винт с базой не комильфо, поэтому он создает фототеку с генерацией превьюшек на пару гигов и может с удобством иметь ее в своем распоряжении. Если у вапс мак бук айр, это актуально. Упс, о таком и не думал.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Несколько иной интерпритации импорт фотографий, при котором не создается файл описания базы в xml формате. Связан с тем что если в фототека очень внушительная, при добавлении фотографий, на создание превьюшек подвисает самым наглым образом. Пользователь об этом отписал, поэтому он отключает все настройки создани превьюшек и апертура показывает оригинальные изображение. Если вы фотограф, то для вас это актуально.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Все это настораживало. Пришлось немного углубиться в aperture. В фототеке (aplibrary) были обнаружены файлы sqllite. О Бинго ! Внутри баз даных была найдена вся информация по фотографиям. Подключил sqlite3 в проект, пару строк кода и имеем полноценную поддержку фототек для разных вариантов импорта.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Мысли приходят, такого характера. Опыт использования программ сторонними пользователями очень важен, когда интегрируешь поддержку других продуктов со своими.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Спасибо Максу, что он внимательно билд за билдом тестил программу.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-3340440276647904035?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/3340440276647904035/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=3340440276647904035' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/3340440276647904035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/3340440276647904035'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/10/aperture.html' title='Немного &quot;the aperture&quot;'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-217785978979150591</id><published>2011-09-24T00:38:00.000-07:00</published><updated>2011-09-24T00:41:57.758-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='мысли в цифре'/><category scheme='http://www.blogger.com/atom/ns#' term='яблокодинг'/><title type='text'>Два месяца с XCode 4</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Перешли на новую ide от apple. Можно подвести некоторые итоги.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Понравилось&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+&lt;b&gt; &lt;/b&gt;концепция&lt;b&gt;&amp;nbsp;&lt;/b&gt;all-in-one&lt;b&gt;&amp;nbsp;&lt;/b&gt;( на большом мониторе чертовски удобно )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+ поддержка workspace ( огромный шаг вперед на встречу с visual studio )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+&amp;nbsp;переработанный&amp;nbsp;debuger ( мета информация для типов, переключение по потокам )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+ редактор ( tab-интерфейс в редакторе, snippets )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+ help ( удобно&amp;nbsp;интегрирован - Quick Help )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+&amp;nbsp;инструменты&amp;nbsp;статического анализа и Fix-it (утилиты полезные)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+ Instruments - классно, только железо нужно приличное&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Минусы&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- сочетания клавиш стали другие&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- для разработки нужен монитор желательно 23+ дюйма и достаточно шустрое железо ( разработка не макбуке 13дюймов, будет полным адом )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- иногда вылетает, подвисает ( возможно версия 4.1 на которой работаем глюкавая, надо попробовать 4.2, статус который увы beta )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- редактор ресурсов при сохранении по прежнему создает "тысячу изменений" на одно действие ( поэтому работа с gui по большей части в коде )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- refactoring - лучше не использовать&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;В целом стало лучше, много мелких улучшений. В 3.x меня напрягал момент набора текста и debuger, в новой версии все это довели до&amp;nbsp;приемлемого&amp;nbsp;уровня. Со всем остальным можно жить и даже получать от этого profit.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-217785978979150591?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/217785978979150591/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=217785978979150591' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/217785978979150591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/217785978979150591'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/09/xcode-4.html' title='Два месяца с XCode 4'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-6467980640115253669</id><published>2011-09-05T10:34:00.000-07:00</published><updated>2011-09-15T04:24:33.620-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Cocoa'/><category scheme='http://www.blogger.com/atom/ns#' term='яблокодинг'/><category scheme='http://www.blogger.com/atom/ns#' term='Snippet'/><title type='text'>Полноэкранный режим в Mac OS X Lion 10.7</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Новая операционная система. Новые проблемы и приятные неожиданности.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Переход приложения в полноэкранный режим в новой ОС выглядит гармонично. Анимация, плавное скольжения окна и т.д. Прекрасно в реальности, но пока сыро в плане разработки. Увы сделать свой интересный анимированый переход пока не получилось. Первое на чем споткнулся принудительно запускать &amp;nbsp;приложение в полноэкранный режим. Есть механизм сохранения состояния программы (мощная штука, но избыточная). Простое решение в коде получилось методом проб и ошибок.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_6820391825" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;a href="javascript:CopyToClipboard('id_6820391825')" style="color: #a0a0a0; text-decoration: none;"&gt;copy to clipboard&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left: 3px solid #6CE26C; color: #5c5c5c; line-height: 14px; list-style-position: outside; list-style: decimal; margin: 0px 0px 1px 45px !important; padding: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;................&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: grey;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: grey;"&gt;#import&amp;nbsp;&amp;lt;CoreServices/CoreServices.h&amp;gt;&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;@implementation&amp;nbsp;NSApplication&amp;nbsp;(SystemVersion)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;+&amp;nbsp;(BOOL)&amp;nbsp;usingLionOSX&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SInt32&amp;nbsp;minorVersion&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SInt32&amp;nbsp;majorVersion&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Gestalt(gestaltSystemVersionMajor,&amp;nbsp;&amp;amp;majorVersion);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Gestalt(gestaltSystemVersionMinor,&amp;nbsp;&amp;amp;minorVersion);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;majorVersion&amp;nbsp;==&amp;nbsp;10&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;minorVersion&amp;nbsp;&amp;gt;=&amp;nbsp;7;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;@end&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;................&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;IBOutlet&amp;nbsp;NSWindow*&amp;nbsp;&amp;nbsp;_mainWindow;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008200;"&gt;//&amp;nbsp;&amp;nbsp;in&amp;nbsp;h-file&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;................&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;-&amp;nbsp;(&lt;span style="color: #006699; font-weight: bold;"&gt;void&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;)&amp;nbsp;applicationDidFinishLaunching&amp;nbsp;:&amp;nbsp;(NSNotification*)&amp;nbsp;notification&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: grey;"&gt;#if&amp;nbsp;(defined(MAC_OS_X_VERSION_10_7))&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;MAC_OS_X_VERSION_MAX_ALLOWED&amp;nbsp;&amp;gt;=&amp;nbsp;MAC_OS_X_VERSION_10_7&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;[&amp;nbsp;NSApplication&amp;nbsp;usingLionOSX&amp;nbsp;]&amp;nbsp;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;[&amp;nbsp;NSApplication&amp;nbsp;sharedApplication&amp;nbsp;]&amp;nbsp;setPresentationOptions&amp;nbsp;:&amp;nbsp;NSApplicationPresentationAutoHideMenuBar&amp;nbsp;|&amp;nbsp;NSApplicationPresentationAutoHideDock&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSWindowCollectionBehavior&amp;nbsp;collection&amp;nbsp;=&amp;nbsp;[&amp;nbsp;_mainWindow&amp;nbsp;collectionBehavior&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;collection&amp;nbsp;|=&amp;nbsp;NSWindowCollectionBehaviorFullScreenPrimary;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;_mainWindow&amp;nbsp;setCollectionBehavior&amp;nbsp;:&amp;nbsp;collection&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;_mainWindow&amp;nbsp;toggleFullScreen&amp;nbsp;:&amp;nbsp;self&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: grey;"&gt;#endif&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-6467980640115253669?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/6467980640115253669/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=6467980640115253669' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/6467980640115253669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/6467980640115253669'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/09/mac-os-x-lion-107.html' title='Полноэкранный режим в Mac OS X Lion 10.7'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-2838905311649033747</id><published>2011-07-20T13:26:00.000-07:00</published><updated>2011-07-20T13:27:40.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Cocoa'/><category scheme='http://www.blogger.com/atom/ns#' term='яблокодинг'/><category scheme='http://www.blogger.com/atom/ns#' term='Snippet'/><title type='text'>Как получить метаданные из NSImage</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: 11px;"&gt;&lt;b&gt;Получаем метаданные изображения.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_4206943758" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;a href="javascript:CopyToClipboard('id_4206943758')" style="color: #a0a0a0; text-decoration: none;"&gt;copy to clipboard&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left-color: rgb(108, 226, 108); border-left-style: solid; border-left-width: 3px; line-height: 14px; list-style-image: initial; list-style-position: initial; list-style-type: decimal; margin-bottom: 1px !important; margin-left: 45px !important; margin-right: 0px !important; margin-top: 0px !important; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;+&amp;nbsp;(NSDictionary*)&amp;nbsp;exif&amp;nbsp;:&amp;nbsp;(NSString*)&amp;nbsp;file&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSDictionary*&amp;nbsp;dic&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;nil;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSURL*&amp;nbsp;url&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;NSURL&amp;nbsp;fileURLWithPath&amp;nbsp;:&amp;nbsp;file&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;url&amp;nbsp;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CGImageSourceRef&amp;nbsp;source&amp;nbsp;=&amp;nbsp;CGImageSourceCreateWithURL&amp;nbsp;(&amp;nbsp;(CFURLRef)&amp;nbsp;url,&amp;nbsp;NULL);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;NULL&amp;nbsp;==&amp;nbsp;source&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: grey;"&gt;#ifdef&amp;nbsp;_DEBUG&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CGImageSourceStatus&amp;nbsp;status&amp;nbsp;=&amp;nbsp;CGImageSourceGetStatus&amp;nbsp;(&amp;nbsp;source&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog&amp;nbsp;(&amp;nbsp;@&lt;span style="color: blue;"&gt;"Error: file&amp;nbsp;name&amp;nbsp;:&amp;nbsp;%@&amp;nbsp;- Status:&amp;nbsp;%d"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;,&amp;nbsp;file,&amp;nbsp;status&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: grey;"&gt;#endif&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;else&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CFDictionaryRef&amp;nbsp;metadataRef&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CGImageSourceCopyPropertiesAtIndex&amp;nbsp;(&amp;nbsp;source,&amp;nbsp;0,&amp;nbsp;NULL&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;metadataRef&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSDictionary*&amp;nbsp;immutableMetadata&amp;nbsp;=&amp;nbsp;(NSDictionary&amp;nbsp;*)metadataRef;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;immutableMetadata&amp;nbsp;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dic&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [&amp;nbsp;NSDictionary&amp;nbsp;dictionaryWithDictionary&amp;nbsp;:&amp;nbsp;(NSDictionary&amp;nbsp;*)metadataRef&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CFRelease&amp;nbsp;(&amp;nbsp;metadataRef&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CFRelease(source);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;source&amp;nbsp;=&amp;nbsp;nil;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;dic;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Menlo; font-size: 11px;"&gt;&lt;b&gt;Используем в коде - получение ориентации изображения из метаданных.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_4173526643" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;a href="javascript:CopyToClipboard('id_4173526643')" style="color: #a0a0a0; text-decoration: none;"&gt;copy to clipboard&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left: 3px solid #6CE26C; color: #5c5c5c; line-height: 14px; list-style-position: outside; list-style: decimal; margin: 0px 0px 1px 45px !important; padding: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;NSDictionary*&amp;nbsp;dic&amp;nbsp;=&amp;nbsp;[&amp;nbsp;ImageLoader&amp;nbsp;exif&amp;nbsp;:&amp;nbsp;filename&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;NSLog(@&lt;span style="color: blue;"&gt;"exif&amp;nbsp;:&amp;nbsp;%@"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;,&amp;nbsp;dic);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;dic&amp;nbsp;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSString*&amp;nbsp;s&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;dic&amp;nbsp;valueForKey&amp;nbsp;:&amp;nbsp;@&lt;span style="color: blue;"&gt;"Orientation"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSLog(@&lt;span style="color: blue;"&gt;"Image&amp;nbsp;:&amp;nbsp;%@&amp;nbsp;-&amp;nbsp;orentation&amp;nbsp;:&amp;nbsp;%d"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;,&amp;nbsp;filename,&amp;nbsp;[&amp;nbsp;s&amp;nbsp;intValue&amp;nbsp;]&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;title&gt;&lt;/title&gt;&lt;style type="text/css"&gt;p.p1 {margin: 0.0px 0.0px 0.0px 56.0px; text-indent: -56.0px; font: 11.0px Menlo}&lt;/style&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;b&gt;&lt;b&gt;LOG&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;title&gt;&lt;/title&gt;&lt;style type="text/css"&gt;p.p1 {margin: 0.0px 0.0px 0.0px 28.0px; text-indent: -28.0px; font: 11.0px Menlo}p.p2 {margin: 0.0px 0.0px 0.0px 56.0px; text-indent: -56.0px; font: 11.0px Menlo}p.p3 {margin: 0.0px 0.0px 0.0px 84.0px; text-indent: -84.0px; font: 11.0px Menlo}p.p4 {margin: 0.0px 0.0px 0.0px 112.0px; text-indent: -112.0px; font: 11.0px Menlo}&lt;/style&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;b&gt;2011-07-21 00:20:40.990 test.app[12204:8003] exif : {&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; ColorModel = RGB;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; DPIHeight = 72;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; DPIWidth = 72;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Depth = 8;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; Orientation = 7;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; PixelHeight = 2592;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; PixelWidth = 3872;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; "{JFIF}" = &amp;nbsp; &amp;nbsp; {&lt;/b&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DensityUnit = 1;&lt;/b&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; JFIFVersion = &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&lt;/b&gt;&lt;/div&gt;&lt;div class="p4"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1,&lt;/b&gt;&lt;/div&gt;&lt;div class="p4"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/b&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; );&lt;/b&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; XDensity = 72;&lt;/b&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; YDensity = 72;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; };&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; "{TIFF}" = &amp;nbsp; &amp;nbsp; {&lt;/b&gt;&lt;/div&gt;&lt;div class="p3"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Orientation = 7;&lt;/b&gt;&lt;/div&gt;&lt;div class="p2"&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; };&lt;/b&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/div&gt;&lt;div class="p1"&gt;&lt;b&gt;2011-07-21 00:20:40.991&amp;nbsp;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;test.app&lt;/b&gt;&lt;/span&gt;[12204:8003] Image : /Users/alexey/Desktop/Works/EXIF Orientation Sample Images/7.jpg - orentation : 7&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-2838905311649033747?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/2838905311649033747/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=2838905311649033747' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/2838905311649033747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/2838905311649033747'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/07/nsimage.html' title='Как получить метаданные из NSImage'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-1646988225571548845</id><published>2011-07-04T05:16:00.000-07:00</published><updated>2011-09-15T04:25:12.800-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='железяки'/><title type='text'>Griffin PowerMate ( манипулятор для компьютера )</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Обладаю огромной страстью, к разным прикольным девайсам для компа. На просторах инета был обнаружен, весьма занимательный экземпляр. Чудо колесо, стальное колесо, шайба, как ни называй это устройство &lt;a href="https://store.griffintechnology.com/desktop/powermate"&gt;Griffin PowerMate&lt;/a&gt;. Определенно разнообразит ваш компьютерный быт. Т.к. покупал для своего эппл ноутбука. Не могу сказать, как оно работает под виндой. Под маком все работает, как положено.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;Плюсы&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- необычность&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- неоновая подсветка, можно регулировать, моргание, плавное угасание...&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- стальной корпус, подкупает своей "металичностью"&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- есть специальное ПО, для удобной настройки&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;Минусы&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- провода usb ( по аналогии с apple track pad, сделать блютуз версию устройства )&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- подсветку надо ручками отключать, напрягает что подсветка будет всегда включена при каждой перезагрузке системы&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- для разработки под эту штуковину нужен SDK от производителя ( support&amp;nbsp;упорно молчит на предмет, как получить инструментарий разработчика )&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-1646988225571548845?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://store.griffintechnology.com/desktop/powermate' title='Griffin PowerMate ( манипулятор для компьютера )'/><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/1646988225571548845/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=1646988225571548845' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/1646988225571548845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/1646988225571548845'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/07/griffin-powermate.html' title='Griffin PowerMate ( манипулятор для компьютера )'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-4567983802979410158</id><published>2011-06-19T03:48:00.000-07:00</published><updated>2011-07-20T13:28:16.602-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Cocoa'/><category scheme='http://www.blogger.com/atom/ns#' term='яблокодинг'/><category scheme='http://www.blogger.com/atom/ns#' term='Snippet'/><title type='text'>NSMutableDictionary to NSUserDefaults</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_0618034600" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;a href="javascript:CopyToClipboard('id_0618034600')" style="color: #a0a0a0; text-decoration: none;"&gt;copy to clipboard&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left: 3px solid #6CE26C; color: #5c5c5c; line-height: 14px; list-style-position: outside; list-style: decimal; margin: 0px 0px 1px 45px !important; padding: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;NSMutableDictionary*&amp;nbsp;dic&amp;nbsp;=&amp;nbsp;[&amp;nbsp;[&amp;nbsp;NSMutableDictionary&amp;nbsp;alloc&amp;nbsp;]&amp;nbsp;initWithObjectsAndKeys&amp;nbsp;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@&lt;span style="color: blue;"&gt;"500"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;,&amp;nbsp;@&lt;/span&gt;&lt;span style="color: blue;"&gt;"MaxLoadedImages"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@&lt;span style="color: blue;"&gt;"10"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;,&amp;nbsp;&amp;nbsp;@&lt;/span&gt;&lt;span style="color: blue;"&gt;"RequestMaxImages"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;,&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nil&amp;nbsp;];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;(&amp;nbsp;dic&amp;nbsp;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;[&amp;nbsp;NSUserDefaults&amp;nbsp;standardUserDefaults&amp;nbsp;]&amp;nbsp;setObject&amp;nbsp;:&amp;nbsp;dic&amp;nbsp;forKey&amp;nbsp;:&amp;nbsp;@&lt;span style="color: blue;"&gt;"flickr.com"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;dic&amp;nbsp;release&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;.............................&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_9034408235" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;a href="javascript:CopyToClipboard('id_9034408235')" style="color: #a0a0a0; text-decoration: none;"&gt;copy to clipboard&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left: 3px solid #6CE26C; color: #5c5c5c; line-height: 14px; list-style-position: outside; list-style: decimal; margin: 0px 0px 1px 45px !important; padding: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;NSDictionary*&amp;nbsp;settings&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;[&amp;nbsp;NSUserDefaults&amp;nbsp;standardUserDefaults&amp;nbsp;]&amp;nbsp;objectForKey&amp;nbsp;:&amp;nbsp;@&lt;/span&gt;&lt;span style="color: blue;"&gt;"flickr.com"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;NSInteger&amp;nbsp;maxLoadedImages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;[&amp;nbsp;settings&amp;nbsp;objectForKey&amp;nbsp;:&amp;nbsp;@&lt;span style="color: blue;"&gt;"MaxLoadedImages"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;]&amp;nbsp;integerValue&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;NSInteger&amp;nbsp;requestMaxImages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;[&amp;nbsp;settings&amp;nbsp;objectForKey&amp;nbsp;:&amp;nbsp;@&lt;span style="color: blue;"&gt;"RequestMaxImages"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;]&amp;nbsp;integerValue&amp;nbsp;];&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;NSLog(@&lt;span style="color: blue;"&gt;"settings&amp;nbsp;:&amp;nbsp;%@"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;,&amp;nbsp;settings);&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;LOG&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;2011-06-19 14:07:34.600 test.app[3464:6b03] settings : {&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;MaxLoadedImages = 500;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;RequestMaxImages = 10;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;}&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-4567983802979410158?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/4567983802979410158/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=4567983802979410158' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4567983802979410158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4567983802979410158'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/06/nsmutabledictionary-to-nsuserdefaults.html' title='NSMutableDictionary to NSUserDefaults'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-2502241677442358460</id><published>2011-05-03T01:42:00.000-07:00</published><updated>2012-02-11T01:23:03.248-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мысли в цифре'/><category scheme='http://www.blogger.com/atom/ns#' term='App Store'/><title type='text'>Mac Developer Program регистрация</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Получение верицифированого аккаунта занимает от силы несколько дней. В моем случае заняло 3 дня. Первое что необходимо, &lt;b&gt;кредитка для платежей&lt;/b&gt; в интернете ( карту заводил в alfa-bank для интернет платежей (master card), apple снимает один раз с нее $99 за Mac Dev Program&lt;b&gt; &lt;/b&gt;и больше она нам не нужна). Правильно заполненные данные залог успеха. Поэтому, сначала лучше&amp;nbsp;аккаунт&amp;nbsp;завести на физическое лицо (избавит от бегания по всяким инстанциям). Данные в профиле регистрации, лучше что бы совпадали с данными карты с которой будет снят платеж.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;По окончанию ввода данных на сайте, вам будет предложен способ оплаты. Увы, для тех кто проживает в Российской Федерации и ряда стран ближнего зарубежья, единственным способом оплаты будет факс. Скачиваем документ с формой для заполения данных для факса (форма доступна после заполнения всех данных). Данные для формы факса должны полностью совпадать с теми что ввели на сайте, плюс идентификатор разработчика и банковской карты. Отправлям факс помощью программы или через почтовое отдельное. Спустя несколько дней приходит уникальный идентификатор для активации аккаунта. Вводим его и получаем возможность подписывать программы цифровыми сертификатами, но это уже другая история...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Подписка действует ровно год с момента активации аккаунта. Первое что дает подписка, возможность &lt;b&gt;публикации своих приложений&lt;/b&gt;. Доступ к форумам и pre release версиям продуктов различных&amp;nbsp;инструментарием.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;Upd 11.02.2012 Совпадение данных пластиковой карточки с тем на кого создается&amp;nbsp;&lt;/b&gt;&lt;b&gt;аккаунт&amp;nbsp;&amp;nbsp;желательно. Избавит от дополнительных телодвижений.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;По поводу факса, сейчас эта процедура не обязательная, можно отправить письмо.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Есть один весьма неприятный момент, название фирмы указывается при регистрации один раз и его вам не могут поменять. Будьте внимательны. (upd. для физ лица могут поменять на имя продавца, но ни как на другое название).&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Продление&amp;nbsp;аккаунт&amp;nbsp;- процедура&amp;nbsp;аналогичная (99 баксов с кредитки с факсом или мэйлом) Если вы проспали момент оплаты, ваша программа автоматически блокируются в сторе.&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-2502241677442358460?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/2502241677442358460/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=2502241677442358460' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/2502241677442358460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/2502241677442358460'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/05/mac-developer-program.html' title='Mac Developer Program регистрация'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-1611164258769512826</id><published>2011-04-19T12:57:00.000-07:00</published><updated>2011-07-20T13:27:58.449-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Cocoa'/><category scheme='http://www.blogger.com/atom/ns#' term='яблокодинг'/><category scheme='http://www.blogger.com/atom/ns#' term='Snippet'/><title type='text'>Нотификация между потоками и GUI ( NSNotificationCenter )</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Используете потоки для выполнения нужной работы. Хотите использовать нотификацию о каких то событиях между потоками ( для связи с тем же GUI, выброс ошибок, передача данных и etc ). В этом случае нужно корректно отсылать такие сообщения в контексте главного потока. Проблема может проявится не сразу, в не ожиданный момент.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_1595118203" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left: 3px solid #6CE26C; color: #5c5c5c; line-height: 14px; list-style-position: outside; list-style: decimal; margin: 0px 0px 1px 45px !important; padding: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="color: grey;"&gt;#pragma&amp;nbsp;mark&amp;nbsp;post&amp;nbsp;thread&amp;nbsp;safe&amp;nbsp;notifity&amp;nbsp;messages&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;-&amp;nbsp;(&lt;span style="color: #006699; font-weight: bold;"&gt;void&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;)&amp;nbsp;sendErrorNotification&amp;nbsp;:&amp;nbsp;(NSString&amp;nbsp;*)&amp;nbsp;message&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;[&amp;nbsp;[&amp;nbsp;NSNotificationCenter&amp;nbsp;defaultCenter&amp;nbsp;]&amp;nbsp;postNotificationName&amp;nbsp;:&amp;nbsp;@&lt;span style="color: blue;"&gt;"NotifyUser"&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;object&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;:&amp;nbsp;message&amp;nbsp;];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;-&amp;nbsp;(&lt;span style="color: #006699; font-weight: bold;"&gt;void&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;)&amp;nbsp;postSafeNotifityMessage&amp;nbsp;:&amp;nbsp;(NSString&amp;nbsp;*)&amp;nbsp;message&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;self&amp;nbsp;performSelectorOnMainThread&amp;nbsp;:&amp;nbsp;@selector(sendErrorNotification:)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;withObject&amp;nbsp;:&amp;nbsp;message&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;waitUntilDone&amp;nbsp;:&amp;nbsp;NO&amp;nbsp;];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;Пример&amp;nbsp;посылки&amp;nbsp;сообщения&amp;nbsp;об&amp;nbsp;ошибки&amp;nbsp;сети.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;-&amp;nbsp;(&lt;span style="color: #006699; font-weight: bold;"&gt;void&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;)&amp;nbsp;connection&amp;nbsp;:&amp;nbsp;(NSURLConnection&amp;nbsp;*)&amp;nbsp;connection&amp;nbsp;didFailWithError&amp;nbsp;:&amp;nbsp;(NSError&amp;nbsp;*)&amp;nbsp;error&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[&amp;nbsp;self&amp;nbsp;postSafeNotifityMessage&amp;nbsp;:&amp;nbsp;[&amp;nbsp;error&amp;nbsp;localizedDescription&amp;nbsp;]&amp;nbsp;];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin: 0; padding: 0 3px 0 10px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-1611164258769512826?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/1611164258769512826/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=1611164258769512826' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/1611164258769512826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/1611164258769512826'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/04/gui-nsnotificationcenter.html' title='Нотификация между потоками и GUI ( NSNotificationCenter )'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-39100736317505026</id><published>2011-02-13T03:20:00.000-08:00</published><updated>2011-09-15T04:23:15.066-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='мысли в цифре'/><title type='text'>размышления о mercurial</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;В силу некоторых обстоятельств, перевели проекты на mercurial. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Первое - сложности при развертываниее сервера для распределенной команды разработчиков. Поэтому сервер имелся только у одного человека.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Второе - у кого нету сервера, создавали свои псевдо мини сервера (отедельны папки).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Было еще несколько проблем, которые доставляли мелкие не удобства при работе с репозиториями.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Выбор пал на &lt;a href="http://ru.wikipedia.org/wiki/Mercurial"&gt;mercurial&lt;/a&gt;. Децентрализованя система хранения исходников проектов. Сервер в данном случае не нужен. Очень удобно когда можно работать без доступа к центральному репозиторию или когда есть возможность делиться своими экспериментальными ветками с другими участниками разработки. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;При разработке, делаю много мелких изменений в кодобазе. Поэтому актуально иметь несколько веток на локальной машине для промежуточных комитов. Почитать про mercurial можно на хабре, там Джоэль очень подробно описывает как работать с ветками, мержить их и т.д. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://habrahabr.ru/blogs/development_tools/108443/"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Joel Spolsky о принципах Mercurial&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Бесплатный клиент для mac os x &lt;a href="http://jasonfharris.com/machg/"&gt;MacHG&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;На данный момент, переход с svn на mercurial, можно считать успешным.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;PS. С другой стороны, если у команды разработчиков есть возможность использовать проверенный годами SVN, то было бы глупо откзываться от него ( если еще они сидят в одной комнате, то переход ня mercurial -&amp;gt; just for fun ).&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-39100736317505026?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/39100736317505026/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=39100736317505026' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/39100736317505026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/39100736317505026'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/02/mercurial.html' title='размышления о mercurial'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-5437275002058070875</id><published>2011-01-21T03:19:00.000-08:00</published><updated>2011-09-14T01:45:17.570-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='железяки'/><title type='text'>Железяка Amazon Kindle 3 Wi-Fi</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Перед Новым Годом решил себя побаловать электронной читалкой книг. Долго не думал выбрал &lt;b&gt;Amazon Kindle 3 Wi-Fi&lt;/b&gt;. Цена у него оказалась ниже конкурентов, да и в сравнении с другими аналогами.. Девайс обошелся в &lt;b&gt;6500 рублей&lt;/b&gt;, доставка курьером в руки (купил на ebay.com у дяди, которые уже несколько тыщ распродал ).&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Понравилось&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;- Удобная эргономика приятно держать в руках, небольшой вес&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;- Идеальный вариант для чтения художественной литературы&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;- Русский язык в коробке ( понимает русские тексты, плясать с бубном не пришлось )&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;- Три гига свободного места, в системе определяется как флэшка, достаточно для того что бы не парится. Закинул книгу и читаешь.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;- Есть внутренний браузер ( мелочь а приятно )&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;С этим жить можно&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;- Коллекции - ручками придется рассортировать все книги закинутые на девайс в ручную, в виртуальные папки. Не так критично, но если у вас коллекция из нескольких сотен книг, потратите время на это дело.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;- PDF на таком мелком экране нет смысла читать&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;- Нет поддержки карточек (SD например, для хранения библиотек)&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;- Механика кнопки reset имеет тенденцию большого люфта и щелкания&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;update (14.09.2011):&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Появился тут на днях kindle, который не видит книги прямым копированием из проводника или finder в маке на устройство книг. Желание разбираться с прошивками особо нету. Озадачился программой для с девайсом что бы было все включено.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;Как закинуть книгу в kindle ? &lt;/b&gt;Используем программу&amp;nbsp;&lt;a href="http://calibre-ebook.com/"&gt;Сalibre&lt;/a&gt;&amp;nbsp;( включает конвертер книг, синхронизацию с устройством, конвертация новостей из сети, управление коллекцией книг ). Программа бесплатная. Проверено работает как на mac os x так и на windows.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-5437275002058070875?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/5437275002058070875/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=5437275002058070875' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5437275002058070875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5437275002058070875'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2011/01/amazon-kindle-3-wi-fi.html' title='Железяка Amazon Kindle 3 Wi-Fi'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-4562251418890268288</id><published>2010-12-23T12:15:00.000-08:00</published><updated>2011-09-24T00:48:50.747-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='железяки'/><title type='text'>Железяка тыррнет-центр ZYXEL NBG334W EE</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Нужен был wi-fi по всей квартире, поэтому купил ZYXEL NBG334W EE ( Интернет-центр для подключения по выделенной линии Ethernet с точкой доступа Wi-Fi 802.11g и коммутатором Ethernet... бла бла))) Особо не выбирал что купить, взял то что попалось. После трех месяцев использования сие чудо. Вердикт утвердительный - "Пользоваться можно"&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;понравилось&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+ удобное управление и настройка устройства через web- интерфейс&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+ wi-fi работает на отлично, с айфоном все на ура работает&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+ решение из коробки, включил и работает&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;+ белый корпус ( мелочь а приятно )&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;очень не понравилось&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- связка ADSL модем + желязяка - долгий старт ( от 5 до 10 минут )&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;- если используем uTorrent все отмирает, сказывается слабенькая начинка железяки&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;b&gt;update(24.09.2011)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Обновляйте ваше устройство прошивкой -&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;Микропрограмма версии 3.60(AMW.5)D0 для NBG334W EE.&amp;nbsp;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;В этом случае решаются проблемы долгого старта и подключением по PPPoE.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-4562251418890268288?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/4562251418890268288/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=4562251418890268288' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4562251418890268288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4562251418890268288'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2010/12/zyxel-nbg334w-ee.html' title='Железяка тыррнет-центр ZYXEL NBG334W EE'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-3543455752866906059</id><published>2010-11-07T08:44:00.000-08:00</published><updated>2011-09-15T04:33:05.638-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='мысли в цифре'/><category scheme='http://www.blogger.com/atom/ns#' term='Cocoa'/><category scheme='http://www.blogger.com/atom/ns#' term='яблокодинг'/><title type='text'>Drag and Drop on a Mac</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;Отработка драга&amp;amp;дропа в маке банальна по своей сути, если известно что делать ).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Рассмотрим случай когда досточно простого переноса/добавление файлов, папки, диска в программу. Бонусом идет, что если мы переносим эти объекты на пиктограмму не запущенной еще программы, то используется тот же механизм (к примеру есть известная программа iPhoto, в нее можно закидывать фотки как папками, кучей файлов, отдельным файлом, так и переносм на пиктограмму).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Первое что нам понадобится, это подправить немного info.plist&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Information Property List -&amp;gt; добавляем Document types&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;В Document types -&amp;gt; Item -&amp;gt; Document OS Types&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;В Document OS Types -&amp;gt; &lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Item 0 = ****&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Item 1 = fold (&lt;i&gt;для папок и файлов&lt;/i&gt;)&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Item 2 = disk (&lt;i&gt;для дисков&lt;/i&gt;)&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;Можно выставить Role = Viewer.&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Теперь добавим немного кода в класс-делегат (обычно это основной Controller к которому привязан View).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-color: #e7e5dc; border: none; font-family: Consolas,Monaco,Courier New,Courier,monospace !important; font-size: 12px; font-weight: normal; margin: 0; overflow: auto; padding-top: 1px; padding: 0;"&gt;&lt;div id="id_7071495831" style="padding-left: 45px;"&gt;&lt;div style="background-color: #f8f8f8; border-left: 3px solid #6CE26C; font-size: 9px; padding: 3px 8px 3px 10px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;ol style="background-color: white; border-left-color: rgb(108, 226, 108); border-left-style: solid; border-left-width: 3px; line-height: 14px; list-style-image: initial; list-style-position: initial; list-style-type: decimal; margin-bottom: 1px !important; margin-left: 45px !important; margin-right: 0px !important; margin-top: 0px !important; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;-&amp;nbsp;(NSDragOperation)draggingEntered:(id&amp;nbsp;&lt;nsdragginginfo&gt;)sender&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/nsdragginginfo&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008200;"&gt;//&amp;nbsp;в&amp;nbsp;зависимости&amp;nbsp;от&amp;nbsp;типа&amp;nbsp;операции&amp;nbsp;перенос,&amp;nbsp;добавление&amp;nbsp;etc.&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008200;"&gt;//&amp;nbsp;будет&amp;nbsp;у&amp;nbsp;нас&amp;nbsp;при&amp;nbsp;драге&amp;nbsp;на&amp;nbsp;объекте&amp;nbsp;значок&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: black;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;NSDragOperationLink;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;-&amp;nbsp;(&lt;span style="color: seagreen; font-weight: bold;"&gt;BOOL&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;)prepareForDragOperation:(id&amp;nbsp;&lt;nsdragginginfo&gt;)sender&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/nsdragginginfo&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;YES;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;-&amp;nbsp;(&lt;span style="color: seagreen; font-weight: bold;"&gt;BOOL&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;)performDragOperation:(id&amp;nbsp;&lt;nsdragginginfo&gt;)sender&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/nsdragginginfo&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSPasteboard&amp;nbsp;*pboard;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSDragOperation&amp;nbsp;sourceDragMask;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sourceDragMask&amp;nbsp;=&amp;nbsp;[sender&amp;nbsp;draggingSourceOperationMask];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pboard&amp;nbsp;=&amp;nbsp;[sender&amp;nbsp;draggingPasteboard];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;if&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;([[pboard&amp;nbsp;types]&amp;nbsp;containsObject:NSFilenamesPboardType])&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NSArray&amp;nbsp;*files&amp;nbsp;=&amp;nbsp;[pboard&amp;nbsp;propertyListForType:NSFilenamesPboardType];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008200;"&gt;//&amp;nbsp;...&amp;nbsp;отрабатываем&amp;nbsp;данные&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: white; color: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #006699; font-weight: bold;"&gt;return&lt;/span&gt;&lt;span style="background-color: inherit; color: black;"&gt;&amp;nbsp;YES;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="background-color: #f8f8f8; color: #5c5c5c; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 10px; padding-right: 3px; padding-top: 0px;"&gt;&lt;span style="background-color: inherit; color: black;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-3543455752866906059?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/3543455752866906059/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=3543455752866906059' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/3543455752866906059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/3543455752866906059'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2010/11/drag-and-drop-on-mac.html' title='Drag and Drop on a Mac'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-4938494539183736875</id><published>2010-10-01T23:57:00.001-07:00</published><updated>2011-04-20T03:32:25.619-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='Cocoa'/><title type='text'>Книги по Cocoa</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Книги в переводе бестолковые. Откровенно говоря, очень слабые. Для тех кто знаком с ООП языками, не представляют особой ценности в плане новых концепций и знаний.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ozon.ru/context/detail/id/4551203/#comments"&gt;Аарон Хиллегасс&lt;br /&gt;Программирование в среде Cocoa для Mac OS X&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ozon.ru/context/detail/id/4796926/"&gt;Марк Далримпл, Скотт Кнастер&lt;br /&gt;Objective-C 2.0 и программирование для Mac&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Несколько книг с более интересным содержанием на языке оригинала.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://books.google.com/books?id=CwjLlUDFoLkC&amp;amp;lpg=PP1&amp;amp;hl=ru&amp;amp;pg=PP1#v=twopage&amp;amp;q&amp;amp;f=false"&gt;Learn Xcode Tools for Mac OS X and IPhone Development&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://books.google.com/books?id=-Zc3V2oOqK0C&amp;amp;lpg=PP1&amp;amp;ots=myaj4gC5_n&amp;amp;dq=Cocoa%20and%20Objective-C%3A%20Up%20and%20Running%20Scott%20Stevenson&amp;amp;hl=ru&amp;amp;pg=PP1#v=onepage&amp;amp;q&amp;amp;f=false"&gt;Cocoa and Objective-C: Up and Running: Foundations of Mac, IPhone, and IPod ... &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://books.google.com/books?id=zhGJnXQNvmsC&amp;amp;lpg=PR2&amp;amp;hl=ru&amp;amp;pg=PR2#v=onepage&amp;amp;q&amp;amp;f=false"&gt;Learn Objective-C on the Mac&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В дороге интересно почитать книжечки, но для работы совершенно не удобны. Гайды на сайте разработчиков от эпла, достаточно подробны &lt;a href="http://developer.apple.com/library/mac/navigation/"&gt;Mac OS X Reference Library&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.epicreal.com/epic-screensaver.htm"&gt;www.epicreal.com&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-4938494539183736875?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/4938494539183736875/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=4938494539183736875' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4938494539183736875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4938494539183736875'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2010/10/cocoa.html' title='Книги по Cocoa'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-7247964699950340118</id><published>2010-09-26T11:53:00.000-07:00</published><updated>2011-09-15T04:33:31.645-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='программирование'/><category scheme='http://www.blogger.com/atom/ns#' term='мысли в цифре'/><title type='text'>Про Xcode</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;Программирование под мак похоже на изучение боевого икусства. После MS Visual Studio, Xcode - вызывает ассоциации аскетичности, минимализма... (как то все хреново тут...)))) &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Парадигма эппловской IDE, заключается в различных подходах. Все управление сосредоточено на хоткеях. Мощный фреймворк Cocoa, средства профайлинга, счетчики и утилиты, упрощающие жизнь рядовым разработчикам. И это работает. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;Справка как ни странно подкачала, MSDN увы нормального нету. Есть гайды почитать можно для общего развития. В этой ситуации проще брать какой нибудь open source проект и смотреть как в нем сделаны те или иные вещи. Поскольку так или иначе, все общение с OS будет идти через Cocoa-Objective-C (можно прожить и с СoreFundation, Carbon deprecated - C фрэймворк).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Отладчик, заслуживает отдельных каментов. Глючит часто и не корректно показывает данные. Проще и нагляднее использовать трэйсирование, логирование или вывод дебаг данных прямо в программе. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;В целом после некоторого времени общения с XCode, можно говорить о том, что разработка в ней, ни чем не отличается от разработки в других средах. Сама IDE, прогрессирует семимильными шагами. В 4 версии обещают кучу улучшений и доработок.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-7247964699950340118?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/7247964699950340118/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=7247964699950340118' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/7247964699950340118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/7247964699950340118'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2010/09/xcode.html' title='Про Xcode'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-5166892637993943799</id><published>2010-09-18T04:00:00.001-07:00</published><updated>2011-09-15T04:34:41.514-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Читаем книги на iphone.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;После покупки iphone, задался вопросом &lt;b&gt;чем читать книги на iphone&lt;/b&gt;. После продолжительного поиска остановился на &lt;a href="http://itunes.apple.com/ru/app/stanza/id284956128?mt=8"&gt;Stanza&lt;/a&gt;. На данный момент лучшее решение для чтение художественных книг на iphone&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Плюсы&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;+ Бесплатная &lt;br /&gt;+ Простое управление с достаточным колличеством настроек ( цветовые схемы и etc. ), &lt;span style="font-weight: bold;"&gt;текст рисуется на всю область экрана&lt;/span&gt;, очень удобно.&lt;br /&gt;+ &lt;a href="http://www.lexcycle.com/download-macintosh"&gt;Stanza Desktop&lt;/a&gt; бесплатная десктопная софтина с кучей настроек для конвертации кучи форматов в приемлимый для меня epub. Плюс возможность посмотреть как будет книга будет отформатирована под девайс.&lt;br /&gt;( после общения с кучей дурацких онлайн конвертеров, от которых надо держаться подальше, ни один так называемый конвертер не смог приемлимо создать из html -&amp;gt; epub, вместо книг на выходе получались файлики по 37 kb. )&lt;br /&gt;+ Добавление книг по прямой ссылке ( с Box.net не удалось скачать книгу, видимо у меня был фришных аккаунт, а там нельзя получать прямые ссылки )&lt;br /&gt;+ Не ест трафик ( iBooks в этом плане напрягает, что при добавлении новой книги, обязательно что-то ищет в сети )&lt;br /&gt;+ Быстро работает перелистывание на несколько страниц, загрузка книги с нуля для  больших книг ( iBooks - на таких книгах, думает и лезет в сеть )&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Минусы&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Нет смысла закачивать книги в формате PDF ( iBooks - идеальное решения для просмотра PDF )&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-5166892637993943799?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/5166892637993943799/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=5166892637993943799' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5166892637993943799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5166892637993943799'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2010/09/iphone.html' title='Читаем книги на iphone.'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-347834310398254059</id><published>2010-09-07T23:08:00.000-07:00</published><updated>2010-12-12T00:46:15.527-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WinAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Dead Keys'/><category scheme='http://www.blogger.com/atom/ns#' term='Text Input'/><title type='text'>Dead Keys</title><content type='html'>«Мёртвые клавиши» (англ. dead keys) — клавиши на компьютерных клавиатурах или пишущих машинках, позволяющие изменить вид следующего вводимого символа. На печатных машинках нажатие на «мёртвую» клавишу ставит надстрочный символ, но не сдвигает каретку на следующий символ. На компьютерах нажатие «мёртвой» клавиши изменяет код следующего вводимого символа.&lt;br /&gt;&lt;br /&gt;С вводом обычных символом все отлично для английского или русского языков. Пока вам не понадобится самому написать отработку ввода с клавиатуры для разнообразных языков (французский, языки Африки etc ).&lt;br /&gt;á, é, í, ó, ú - примеры таких символов, которые вводятся из соотвествующих комбинаций на клавиатуре. Для стандартных контролов ввод таких символов сделан на уровне OS. Для самописных текстовых контролов, разумеется требуется свой обработчик сообщений.&lt;br /&gt;&lt;br /&gt;Код для обработки таких символов ( проверено для французского языка ).&lt;br /&gt;&lt;br /&gt;&lt;DIV style="font-weight:normal;font-family:Consolas,Monaco,Courier New,Courier,monospace !important;font-size:12px;margin:0;padding:0;border:none;background-color:#E7E5DC;overflow:auto;padding-top:1px;"&gt;&lt;DIV style="padding-left:45px;" id="id_7545395731"&gt;&lt;DIV style="padding: 3px 8px 3px 10px;font-size:9px;background-color:#f8f8f8;border-left:3px solid #6CE26C;"&gt;&lt;A HREF="javascript:CopyToClipboard('id_7545395731')" STYLE="text-decoration:none;color:#a0a0a0;"&gt;copy to clipboard&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;OL style="list-style:decimal;list-style-position:outside;background-color:#fff;border-left:3px solid #6CE26C;margin: 0px 0px 1px 45px !important;padding:0px;color:#5C5C5C;line-height:14px;"&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WCHAR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEAD_KEY;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;VOID&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;OnKeyDown&amp;nbsp;(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;UINT&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;Key&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;((&amp;nbsp;Key&amp;nbsp;&amp;gt;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:blue;"&gt;'A'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;&amp;&amp;nbsp;Key&amp;nbsp;&amp;lt;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:blue;"&gt;'Z'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&amp;nbsp;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;Key&amp;nbsp;&amp;gt;=&amp;nbsp;&lt;SPAN style="color:blue;"&gt;'0'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;&amp;&amp;nbsp;Key&amp;nbsp;&amp;lt;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:blue;"&gt;'9'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&amp;nbsp;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;Key&amp;nbsp;&amp;gt;=&amp;nbsp;VK_OEM_1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;&amp;&amp;nbsp;Key&amp;nbsp;&amp;lt;=&amp;nbsp;VK_OEM_3&amp;nbsp;&amp;nbsp;&amp;nbsp;)&amp;nbsp;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;Key&amp;nbsp;&amp;gt;=&amp;nbsp;VK_OEM_4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;&amp;&amp;nbsp;Key&amp;nbsp;&amp;lt;=&amp;nbsp;VK_OEM_8&amp;nbsp;&amp;nbsp;&amp;nbsp;)&amp;nbsp;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;Key&amp;nbsp;&amp;gt;=&amp;nbsp;VK_NUMPAD0&amp;nbsp;&amp;&amp;&amp;nbsp;Key&amp;nbsp;&amp;lt;=&amp;nbsp;VK_DIVIDE&amp;nbsp;)&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WCHAR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;wKEY&amp;nbsp;[&amp;nbsp;3&amp;nbsp;]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;L&lt;/SPAN&gt;&lt;SPAN style="color:blue;"&gt;'\0'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;,&amp;nbsp;L&lt;/SPAN&gt;&lt;SPAN style="color:blue;"&gt;'\0'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;,&amp;nbsp;L&lt;/SPAN&gt;&lt;SPAN style="color:blue;"&gt;'\0'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;};&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;BYTE&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;kbdState[256];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ZeroMemory(&amp;nbsp;kbdState,&amp;nbsp;256&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GetKeyboardState&amp;nbsp;(&amp;nbsp;kbdState&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WCHAR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;KeyboardState&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;wKEY&amp;nbsp;[&amp;nbsp;0&amp;nbsp;];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;1&amp;nbsp;==&amp;nbsp;ToUnicode&amp;nbsp;(&amp;nbsp;Key,&amp;nbsp;0,&amp;nbsp;kbdState,&amp;nbsp;wKEY,&amp;nbsp;3,&amp;nbsp;0&amp;nbsp;)&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;DEAD_KEY&amp;nbsp;!=&amp;nbsp;L&lt;/SPAN&gt;&lt;SPAN style="color:blue;"&gt;'\0'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WCHAR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;WCS_IN[3];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WCHAR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;WCS_OUT[3];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WCS_IN[0]&amp;nbsp;=&amp;nbsp;wKEY[0];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WCS_IN[1]&amp;nbsp;=&amp;nbsp;DEAD_KEY;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WCS_IN[2]&amp;nbsp;=&amp;nbsp;L&lt;SPAN style="color:blue;"&gt;'\0'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#008200;"&gt;/*&amp;nbsp;from&amp;nbsp;accent&amp;nbsp;char&amp;nbsp;to&amp;nbsp;unicode&amp;nbsp;*/&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;FoldStringW&amp;nbsp;(&amp;nbsp;MAP_PRECOMPOSED,&amp;nbsp;WCS_IN,&amp;nbsp;3,&amp;nbsp;WCS_OUT,&amp;nbsp;3&amp;nbsp;)&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wKEY[0]&amp;nbsp;=&amp;nbsp;WCS_OUT[0];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wKEY[1]&amp;nbsp;=&amp;nbsp;WCS_OUT[1];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wKEY[2]&amp;nbsp;=&amp;nbsp;WCS_OUT[2];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEAD_KEY&amp;nbsp;=&amp;nbsp;L&lt;SPAN style="color:blue;"&gt;'\0'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEAD_KEY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;L&lt;SPAN style="color:blue;"&gt;'\0'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;switch&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;wKEY[0]&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;0x5e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008200;"&gt;/*&amp;nbsp;circumflex&amp;nbsp;*/&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEAD_KEY&amp;nbsp;=&amp;nbsp;0x302;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;0x60:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008200;"&gt;/*&amp;nbsp;grave&amp;nbsp;accent&amp;nbsp;*/&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEAD_KEY&amp;nbsp;=&amp;nbsp;0x300;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;0xa8:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008200;"&gt;/*&amp;nbsp;diaeresis&amp;nbsp;*/&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEAD_KEY&amp;nbsp;=&amp;nbsp;0x308;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;0xb4:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008200;"&gt;/*&amp;nbsp;acute&amp;nbsp;accent&amp;nbsp;*/&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEAD_KEY&amp;nbsp;=&amp;nbsp;0x301;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;0xb8:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008200;"&gt;/*&amp;nbsp;cedilla&amp;nbsp;*/&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEAD_KEY&amp;nbsp;=&amp;nbsp;0x327;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;default&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DEAD_KEY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;wKEY[0];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;wKEY&amp;nbsp;[&amp;nbsp;1&amp;nbsp;]&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;L&lt;SPAN style="color:blue;"&gt;'\0'&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CString&amp;nbsp;String&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;CStringW&amp;nbsp;(&amp;nbsp;wKEY&amp;nbsp;);&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;&amp;nbsp;нужная&amp;nbsp;нам&amp;nbsp;буква&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.epicreal.com"&gt;Free 3d Screen Saver&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-347834310398254059?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/347834310398254059/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=347834310398254059' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/347834310398254059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/347834310398254059'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2010/09/dead-keys.html' title='Dead Keys'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-3113867400145639555</id><published>2010-09-07T06:33:00.000-07:00</published><updated>2010-12-12T00:47:44.565-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WinAPI'/><title type='text'>Японские символы</title><content type='html'>Ввод иероглифов на на японском происходит либо через специальную клавиатуру (виртуальную), либо сочетанием из нескольких символов c обычной клавиатуры.  Тут возникает вопрос, а как все это безобразие правильно отработать (при условии что у вас свой ввод данных идет, а не через стандартные контролы EditBox etc, в них по умолчанию с вводом все хорошо). Часть символов приходят от виртуальной клавиатуры. Ниже код для получения строки символов со специального окна ввода иероглифов. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;DIV style="font-weight:normal;font-family:Consolas,Monaco,Courier New,Courier,monospace !important;font-size:12px;margin:0;padding:0;border:none;background-color:#E7E5DC;overflow:auto;padding-top:1px;"&gt;&lt;DIV style="padding-left:45px;" id="id_0925600611"&gt;&lt;DIV style="padding: 3px 8px 3px 10px;font-size:9px;background-color:#f8f8f8;border-left:3px solid #6CE26C;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;OL style="list-style:decimal;list-style-position:outside;background-color:#fff;border-left:3px solid #6CE26C;margin: 0px 0px 1px 45px !important;padding:0px;color:#5C5C5C;line-height:14px;"&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;pragma&amp;nbsp;once&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;-&amp;nbsp;For&amp;nbsp;East&amp;nbsp;Asian&amp;nbsp;languages&amp;nbsp;such&amp;nbsp;as&amp;nbsp;Chinese,&amp;nbsp;Japanese,&amp;nbsp;Korean,&amp;nbsp;and&amp;nbsp;other&amp;nbsp;languages&amp;nbsp;with&amp;nbsp;complex&amp;nbsp;characters.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;-&amp;nbsp;Input&amp;nbsp;Method&amp;nbsp;Editors&amp;nbsp;(IME)&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;http://msdn.microsoft.com/en-us/library/ee419002(VS.85).aspx&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;http://msdn.microsoft.com/en-us/library/dd318641(VS.85).aspx&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:gray;"&gt;#include&amp;nbsp;&amp;lt;Imm.h&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:gray;"&gt;#pragma&amp;nbsp;comment&amp;nbsp;(&amp;nbsp;lib,&amp;nbsp;"imm32.lib"&amp;nbsp;)&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;class&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;CIMEUIController&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;public&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CIMEUIController&amp;nbsp;()&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_bInitialized&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;false&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;~CIMEUIController&amp;nbsp;()&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Uninitialize&amp;nbsp;();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;bool&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;Initialize(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;HWND&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;hWND&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;m_bInitialized&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;true&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_hWND&amp;nbsp;=&amp;nbsp;hWND;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;true&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;void&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;Uninitialize()&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;false&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;==&amp;nbsp;m_bInitialized&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_bInitialized&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;false&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;LPARAM&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;ProcessMessage&amp;nbsp;(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;UINT&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;uMsg,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WPARAM&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;wParam,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;LPARAM&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;&amp;nbsp;lParam,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WCHAR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;**&amp;nbsp;ppIMEStr,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;LONG&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;&amp;nbsp;IMEBytes&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;switch&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;uMsg&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;WM_IME_STARTCOMPOSITION:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;WM_IME_ENDCOMPOSITION:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*ppIMEStr&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMEBytes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HIMC&amp;nbsp;hIMC&amp;nbsp;=&amp;nbsp;ImmGetContext&amp;nbsp;(&amp;nbsp;m_hWND&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;hIMC&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;LONG&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;IMECursorBytes&amp;nbsp;=&amp;nbsp;::ImmGetCompositionStringW&amp;nbsp;(&amp;nbsp;hIMC,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GCS_RESULTSTR,&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#008200;"&gt;//GCS_RESULTREADSTR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NULL,&amp;nbsp;0&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;DWORD&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;Bytes&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WCHAR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;*&amp;nbsp;pIMEStr&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;new&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WCHAR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;[&amp;nbsp;IMECursorBytes&amp;nbsp;+&amp;nbsp;1&amp;nbsp;];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::ZeroMemory&amp;nbsp;(&amp;nbsp;pIMEStr,&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;sizeof&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;WCHAR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;)&amp;nbsp;*&amp;nbsp;IMECursorBytes&amp;nbsp;+&amp;nbsp;1&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;pIMEStr&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;0&amp;nbsp;!=&amp;nbsp;::ImmGetCompositionStringW&amp;nbsp;(&amp;nbsp;hIMC,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;GCS_RESULTSTR,&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#008200;"&gt;//GCS_RESULTREADSTR,&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pIMEStr,&amp;nbsp;IMECursorBytes&amp;nbsp;+&amp;nbsp;1&amp;nbsp;)&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*ppIMEStr&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;pIMEStr;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IMEBytes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&amp;nbsp;&amp;nbsp;IMECursorBytes&amp;nbsp;+&amp;nbsp;1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ImmReleaseContext&amp;nbsp;(&amp;nbsp;m_hWND,&amp;nbsp;hIMC&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;TRUE;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ImmReleaseContext&amp;nbsp;(&amp;nbsp;m_hWND,&amp;nbsp;hIMC&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;WM_IME_NOTIFY:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;switch&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;wParam&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;IMN_SETCONVERSIONMODE:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;IMN_SETOPENSTATUS:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;IMN_OPENCANDIDATE:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;case&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;IMN_CHANGECANDIDATE:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;break&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;return&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;FALSE;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;private&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;:&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;bool&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_bInitialized;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;HWND&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_hWND;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;};&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.epicreal.com/epic-screensaver.htm"&gt;Free 3D Screen Saver&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-3113867400145639555?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/3113867400145639555/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=3113867400145639555' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/3113867400145639555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/3113867400145639555'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2010/09/blog-post.html' title='Японские символы'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-4667419712526202773</id><published>2009-03-30T23:37:00.000-07:00</published><updated>2010-09-07T23:35:15.895-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Tips &amp; tricks WinForms .NET 2</title><content type='html'>Перемещение окна за любое место&lt;br /&gt;&lt;br /&gt;&lt;DIV style="font-weight:normal;font-family:Consolas,Monaco,Courier New,Courier,monospace !important;font-size:12px;margin:0;padding:0;border:none;background-color:#E7E5DC;overflow:auto;padding-top:1px;"&gt;&lt;DIV style="padding-left:45px;" id="id_6078817010"&gt;&lt;DIV style="padding: 3px 8px 3px 10px;font-size:9px;background-color:#f8f8f8;border-left:3px solid #6CE26C;"&gt;&lt;A HREF="javascript:CopyToClipboard('id_6078817010')" STYLE="text-decoration:none;color:#a0a0a0;"&gt;copy to clipboard&lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;OL style="list-style:decimal;list-style-position:outside;background-color:#fff;border-left:3px solid #6CE26C;margin: 0px 0px 1px 45px !important;padding:0px;color:#5C5C5C;line-height:14px;"&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;const&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;int&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;WM_NCHITTEST&amp;nbsp;=&amp;nbsp;0x84;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;const&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;int&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;HTCAPTION&amp;nbsp;=&amp;nbsp;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;const&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;int&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;HTCLIENT&amp;nbsp;=&amp;nbsp;1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;protected&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;override&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;void&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;WndProc(&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;ref&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;Message&amp;nbsp;m)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;base&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;.WndProc(&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;ref&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;m);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(m.Msg&amp;nbsp;==&amp;nbsp;WM_NCHITTEST&amp;nbsp;&amp;&amp;&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;int&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;)m.Result&amp;nbsp;==&amp;nbsp;HTCLIENT)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m.Result&amp;nbsp;=&amp;nbsp;(IntPtr)HTCAPTION;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-4667419712526202773?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/4667419712526202773/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=4667419712526202773' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4667419712526202773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4667419712526202773'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2009/03/tips-tricks-winforms-net-2.html' title='Tips &amp; tricks WinForms .NET 2'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-5340180265326106931</id><published>2009-03-10T02:33:00.000-07:00</published><updated>2009-03-10T02:52:39.148-07:00</updated><title type='text'>Shell COM для Window x64</title><content type='html'>Много программ хорошо работает как под x32 так и под x64 виндами. Но есть то что не будет работать - это расширения для Shell x64 винды, написаные для x32 ( можно зарегать под x32 проводник, но этот путь не для настоящих джедаев ).&lt;br /&gt;&lt;br /&gt;Создать расширение для оболочки Windows x64, оказывается на поверку тривиальной задачей. &lt;br /&gt;&lt;br /&gt;Для начала понадобится компилятор x64 - в VS2008 уже включен.&lt;br /&gt;&lt;br /&gt;Compiling 64 bit DLL/EXE&lt;br /&gt;&lt;br /&gt;1. Open your Visual C++ Solution&lt;br /&gt;2. Choose Build-&gt;Configuration Manager menu&lt;br /&gt;3. Inside the Configuration Manager window, change the ‘Active solution platform’ to x64. If you don’t have any, you would need to create one by selecting the ‘New..’ drop down item. Copy settings from your Win32 platform.&lt;br /&gt;4. Now rebuild your solution.&lt;br /&gt;&lt;br /&gt;Если возникли ошибки связаные с типами, меняем : INT_PTR &lt;- int. DWORD_PTR &lt;- DWORD.&lt;br /&gt;Специфичный код обрамляем в соотвествующие макросы _WIN64 и _WIN32.&lt;br /&gt;&lt;br /&gt;Регистрация осуществляется с помощью : C:\Windows\System32\regsvr32.exe (64 bit)&lt;br /&gt;Для висты требуются админские права.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-5340180265326106931?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/5340180265326106931/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=5340180265326106931' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5340180265326106931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5340180265326106931'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2009/03/shell-com-window-x64.html' title='Shell COM для Window x64'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-5448461331182325890</id><published>2009-01-06T00:29:00.000-08:00</published><updated>2010-09-07T11:20:10.161-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DirectX'/><title type='text'>Восстановление устройства в DirectX</title><content type='html'>Немного кода...&lt;br /&gt;&lt;br /&gt;&lt;DIV style="font-weight:normal;font-family:Consolas,Monaco,Courier New,Courier,monospace !important;font-size:12px;margin:0;padding:0;border:none;background-color:#E7E5DC;overflow:auto;padding-top:1px;"&gt;&lt;DIV style="padding-left:45px;" id="id_2569267856"&gt;&lt;DIV style="padding: 3px 8px 3px 10px;font-size:9px;background-color:#f8f8f8;border-left:3px solid #6CE26C;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;OL style="list-style:decimal;list-style-position:outside;background-color:#fff;border-left:3px solid #6CE26C;margin: 0px 0px 1px 45px !important;padding:0px;color:#5C5C5C;line-height:14px;"&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;HRESULT&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;hr&amp;nbsp;=&amp;nbsp;m_pD3DDevice-&amp;gt;TestCooperativeLevel&amp;nbsp;();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;c&amp;nbsp;девайсом&amp;nbsp;пока&amp;nbsp;ничего&amp;nbsp;не&amp;nbsp;случилось&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;false&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;==&amp;nbsp;m_bDeviceLost&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;hr&amp;nbsp;==&amp;nbsp;D3DERR_DEVICELOST&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;произошли&amp;nbsp;проблемы&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_bDeviceLost&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;true&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OnLostDevice();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;если&amp;nbsp;девайс&amp;nbsp;не&amp;nbsp;сбросили&amp;nbsp;надо&amp;nbsp;его&amp;nbsp;сбросить&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;hr&amp;nbsp;==&amp;nbsp;D3DERR_DEVICENOTRESET&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hr&amp;nbsp;=&amp;nbsp;m_pD3DDevice-&amp;gt;Reset&amp;nbsp;(&amp;nbsp;&amp;m_d3dpp&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;hr&amp;nbsp;==&amp;nbsp;D3D_OK&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OnResetDevice();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;девайс&amp;nbsp;в&amp;nbsp;порядке&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_bDeviceLost&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;false&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;else&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&amp;nbsp;hr&amp;nbsp;==&amp;nbsp;D3DERR_DEVICELOST&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;произошли&amp;nbsp;проблемы&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_bDeviceLost&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;true&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OnLostDevice();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;br /&gt;&lt;br /&gt;Этот код достаточно вставить перед вызовом BeginScene для девайса.&lt;br /&gt;&lt;br /&gt;OnLostDevice - релизим все ресурсы которые с типом D3DPOOL_DEFAULT,&lt;br /&gt;OnResetDevice - аналогично пересоздаем все ресурсы с типом D3DPOOL_DEFAULT, для всех ID3DX интерфейсов вызываем соответствующие методы.&lt;br /&gt;&lt;br /&gt;Если у вас происходит ресайз окна достаточно вызвать последовательность методов&lt;br /&gt;OnLostDevice, затем Reset девайсу, OnResetDevice.&lt;br /&gt;&lt;br /&gt;Mожно вставить проверки на возвращаемые значения для BeginScene (), EndScene (), Present ().&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.epicreal.com"&gt;www.epicreal.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-5448461331182325890?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/5448461331182325890/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=5448461331182325890' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5448461331182325890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5448461331182325890'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2009/01/directx.html' title='Восстановление устройства в DirectX'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-5971246966291908417</id><published>2009-01-05T10:47:00.001-08:00</published><updated>2009-01-06T00:15:13.758-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>"Open source" от microsoft</title><content type='html'>В последнее время озаботился тулзами и всякими либами для .NET (бесплатные и желательно с открытыми сорцами). Вот те на http://www.codeplex.com/ - чудо сайт "CodePlex is Microsoft's open source project hosting web site. Start a new project, join an existing one, or download software created by the community." - описание с сайта подняло настроение.&lt;br /&gt;&lt;br /&gt;http://www.codeplex.com/ScintillaNET ( контрольчик для подсветки синтаксиса, для тех кто из тундры или с другой планеты ) - эта тулза так вапще находка для токаря. Ковыряние с исходниками и написание своего маленького теста (посветка кода lua, xml), мое настроение улетело в горы ! Все работает как часики.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-5971246966291908417?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codeplex.com/' title='&quot;Open source&quot; от microsoft'/><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/5971246966291908417/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=5971246966291908417' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5971246966291908417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/5971246966291908417'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2009/01/open-source-microsoft.html' title='&quot;Open source&quot; от microsoft'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-4702748311032014221</id><published>2008-12-12T04:59:00.000-08:00</published><updated>2010-09-07T23:38:10.737-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>Tips &amp; tricks WinForms .NET</title><content type='html'>"Отзывчивое окно"&lt;br /&gt;&lt;br /&gt;У class System.Windows.Forms.Form, есть свойство Opacity, достаточно установить его значение в 99%, и мы получаем отзывычивое окошко если на заднем фоне имеется, какое то окно с активной перерисовкой. Нет тормозов при перемещении окна. Думаю это аппаратный альфебленд, на видеокарте.(такой трюк провернуть через WIN 32 API, не удалось появлялись глюки с выпаданием пикселей).&lt;br /&gt;&lt;br /&gt;"WinFormSingleton" NoneSafeThread&lt;br /&gt;&lt;br /&gt;Как сделать из Form подобиее синглтона ? смотрим ниже код&lt;br /&gt;&lt;br /&gt;&lt;DIV style="font-weight:normal;font-family:Consolas,Monaco,Courier New,Courier,monospace !important;font-size:12px;margin:0;padding:0;border:none;background-color:#E7E5DC;overflow:auto;padding-top:1px;"&gt;&lt;DIV style="padding-left:45px;" id="id_2489363500"&gt;&lt;DIV style="padding: 3px 8px 3px 10px;font-size:9px;background-color:#f8f8f8;border-left:3px solid #6CE26C;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;OL style="list-style:decimal;list-style-position:outside;background-color:#fff;border-left:3px solid #6CE26C;margin: 0px 0px 1px 45px !important;padding:0px;color:#5C5C5C;line-height:14px;"&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:gray;"&gt;#region&amp;nbsp;WindowFromsSingleton&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;private&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;FormSingleton&amp;nbsp;m_oFormSingleton&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;null&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;private&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;void&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;ShowFormSingleton(&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;object&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;null&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;==&amp;nbsp;m_oFormSingleton)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_oFormSingleton&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;new&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;FormSingleton();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_oFormSingleton.Show();&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_oFormXmlTrackSettings.Closed&amp;nbsp;+=&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;new&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;EventHandler(FormSingleton_Closed);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;private&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;void&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;FormSingleton_Closed(&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;object&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;m_oFormSingleton.Closed&amp;nbsp;-=&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;new&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;EventHandler(FormSingleton_Closed);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;m_oFormSingleton&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;null&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;}&amp;nbsp;&lt;SPAN style="color:gray;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:gray;"&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:gray;"&gt;#endregion&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-4702748311032014221?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/4702748311032014221/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=4702748311032014221' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4702748311032014221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/4702748311032014221'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2008/12/tips-tricks-winforms-net.html' title='Tips &amp; tricks WinForms .NET'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-716755866003325387</id><published>2008-07-29T10:18:00.000-07:00</published><updated>2008-07-29T10:32:28.078-07:00</updated><title type='text'>Дауншифтинг</title><content type='html'>Ежедневный парс электронный новостей приводит к тому что обрастаешь небольшим сленгом. Непереводимые слова, транслит и прочее... на этом фоне весьма любопытным для меня оказалось слово "Дауншифтинг".&lt;br /&gt;&lt;br /&gt;Дауншифтинг (англ. downshifting, замедление или ослабление какого-то процесса) —сленговый термин, обозначающий жизненную философию «жизни ради себя», «отказа от чужих целей» (также применяется синоним Simple living).&lt;br /&gt;В классическом понимании дауншифтинг — это всегда выбор между доходами и стрессами и душевным комфортом за меньшее вознаграждение. Обычно, уходя из бизнеса или со стрессовой работы, люди преследуют такие цели, как получение большего количества времени на увлечения или на семью. (содрано с вики).&lt;br /&gt;&lt;br /&gt;Все желающие могут поподробнее изучить это по двум линкам -&lt;br /&gt;&lt;a href="http://ru.wikipedia.org/wiki/%D0%94%D0%B0%D1%83%D0%BD%D1%88%D0%B8%D1%84%D1%82%D0%B8%D0%BD%D0%B3"&gt;http://ru.wikipedia.org/wiki/%D0%94%D0%B0%D1%83%D0%BD%D1%88%D0%B8%D1%84%D1%82%D0%B8%D0%BD%D0%B3&lt;/a&gt;&lt;br /&gt;&lt;a href="http://community.livejournal.com/ru_downshift"&gt;http://community.livejournal.com/ru_downshift&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-716755866003325387?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/716755866003325387/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=716755866003325387' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/716755866003325387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/716755866003325387'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2008/07/blog-post.html' title='Дауншифтинг'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7121227308542138112.post-9199836134252853415</id><published>2008-06-20T06:43:00.000-07:00</published><updated>2010-09-07T23:39:49.561-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WinAPI'/><title type='text'>Установка имени потока в msvc.</title><content type='html'>При отладке в Microsoft Visual Studio 2005/2008 (с++), потокам в режиме debug-breakpoints можно задать имена. Поиск по мсдн ничего толком не дал. По остальным источникам, оказалось что есть вот такая функция, даже работает. (проверено )) Вот исходный код, пользуемся.&lt;br /&gt;&lt;br /&gt;&lt;DIV style="font-weight:normal;font-family:Consolas,Monaco,Courier New,Courier,monospace !important;font-size:12px;margin:0;padding:0;border:none;background-color:#E7E5DC;overflow:auto;padding-top:1px;"&gt;&lt;DIV style="padding-left:45px;" id="id_1623305187"&gt;&lt;DIV style="padding: 3px 8px 3px 10px;font-size:9px;background-color:#f8f8f8;border-left:3px solid #6CE26C;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;OL style="list-style:decimal;list-style-position:outside;background-color:#fff;border-left:3px solid #6CE26C;margin: 0px 0px 1px 45px !important;padding:0px;color:#5C5C5C;line-height:14px;"&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#008200;"&gt;/*&amp;nbsp;Установка&amp;nbsp;имени&amp;nbsp;для&amp;nbsp;потока&amp;nbsp;в&amp;nbsp;отладчике&amp;nbsp;*/&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;void&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;SetThreadName&amp;nbsp;(&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;DWORD&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;nThreadID,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;const&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;char&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;*&amp;nbsp;pThreadName&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;struct&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;DWORD&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;dwType;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;Должно&amp;nbsp;быть&amp;nbsp;0x1000&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;LPCSTR&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;szName;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;Указатель&amp;nbsp;на&amp;nbsp;строку&amp;nbsp;с&amp;nbsp;именем&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;DWORD&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;dwThreadID;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;Идентификатор&amp;nbsp;потока&amp;nbsp;(&amp;nbsp;-1&amp;nbsp;для&amp;nbsp;текущего&amp;nbsp;)&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;DWORD&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;dwFlags;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;Зарезервировано&amp;nbsp;(&amp;nbsp;должно&amp;nbsp;быть&amp;nbsp;0&amp;nbsp;)&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;info&amp;nbsp;=&amp;nbsp;{&amp;nbsp;0x1000,&amp;nbsp;pThreadName,&amp;nbsp;nThreadID,&amp;nbsp;0&amp;nbsp;};&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;__try&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color:#008200;"&gt;//&amp;nbsp;0x406D1388&amp;nbsp;-&amp;nbsp;магическое&amp;nbsp;число,&amp;nbsp;которое&amp;nbsp;сообщает&amp;nbsp;отладчику&amp;nbsp;имя&amp;nbsp;потока&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RaiseException&amp;nbsp;(&amp;nbsp;0x406D1388,&amp;nbsp;0,&amp;nbsp;&lt;SPAN style="color:#069;font-weight:bold;"&gt;sizeof&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;(info)/&lt;/SPAN&gt;&lt;SPAN style="color:#069;font-weight:bold;"&gt;sizeof&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;DWORD&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;),&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="color:#2E8B57;font-weight:bold;"&gt;DWORD&lt;/SPAN&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;*)&amp;info&amp;nbsp;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;__except&amp;nbsp;(&amp;nbsp;EXCEPTION_CONTINUE_EXECUTION&amp;nbsp;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#F8F8F8;color:#5C5C5C;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="background-color:#fff;color:inherit;padding:0 3px 0 10px;margin:0;"&gt;&lt;SPAN style="color:black;background-color:inherit;"&gt;}&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/DIV&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7121227308542138112-9199836134252853415?l=musinov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://musinov.blogspot.com/feeds/9199836134252853415/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7121227308542138112&amp;postID=9199836134252853415' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/9199836134252853415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7121227308542138112/posts/default/9199836134252853415'/><link rel='alternate' type='text/html' href='http://musinov.blogspot.com/2008/06/msvc.html' title='Установка имени потока в msvc.'/><author><name>master</name><uri>http://www.blogger.com/profile/15510756712097102261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
