<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FreeSmsk@ - бесплатная отправка смс &#187; WinApi WinMobile</title>
	<atom:link href="http://freesmska.ru/category/programming/winapi-winmobile/feed/" rel="self" type="application/rss+xml" />
	<link>http://freesmska.ru</link>
	<description>Блог об смс с кпк и бесплатной отправке смс</description>
	<lastBuildDate>Sun, 05 Feb 2012 17:47:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WinApi пример подключения GPRS</title>
		<link>http://freesmska.ru/winapi-primer-podklyucheniya-gprs/</link>
		<comments>http://freesmska.ru/winapi-primer-podklyucheniya-gprs/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 20:20:36 +0000</pubDate>
		<dc:creator>Темы4</dc:creator>
				<category><![CDATA[WinApi WinMobile]]></category>
		<category><![CDATA[win]]></category>
		<category><![CDATA[WinApi]]></category>

		<guid isPermaLink="false">http://freesmska.ru/?p=522</guid>
		<description><![CDATA[Привет. Продолжаю изучать WinApi и решил поделится с Вами примером, как создавать новое соединение с GPRS. Данный код я вызываю, как при уже созданном открытом подключение жопореза, так и отсутствующем. Разница только в том, что в одном случае он начинает создавать новое соединение с интернетом, в другом просто не выполняет никаких действий. Winapi я использую [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-525" title="winapi примеры" src="http://freesmska.ru/wp-content/uploads/2010/06/0_e736_d9316b64_L.jpg" alt="WinApi пример подключения GPRS" width="500" height="375" /><br />
Привет.<br />
Продолжаю изучать WinApi и решил поделится с Вами примером, как создавать новое соединение с GPRS.<br />
Данный код я вызываю, как при уже созданном открытом подключение жопореза, так и отсутствующем.<br />
Разница только в том, что в одном случае он начинает создавать новое соединение с интернетом, в другом просто не выполняет никаких действий.</p>
<p>Winapi я использую для написания программ для коммуникаторов на платформе Windows Mobile 5,6. Хотя многие из них будут пахать и на более ранних.</p>
<p>Зная как тяжело мне по началу даются winapi, сам щас часто над каждой функцией сижу по часу, а то и дольше, решил сделать сборник готовых примеров для начинающих, да и просто для тех, кто не хочет парится, а готов использовать готовый код.</p>
<p><span id="more-522"></span><br />
Пример соединения с интернетом на ВинМобайле.</p>
<pre class="brush: cpp; title: ; notranslate">
#include &quot;windows.h&quot;
#include &quot;commctrl.h&quot;
#include &quot;connmgr.h&quot;
#pragma comment(lib,&quot;cellcore.lib&quot;) 

GUID GetNetworkForURL (LPCTSTR url)
{
DWORD dwIndex = 0;
GUID rv;
if (!SUCCEEDED (ConnMgrMapURL (url, &amp;amp;rv, &amp;amp;dwIndex)))
rv = GUID_NULL;

return rv;
}

HRESULT EstablishConnection (LPCTSTR url, DWORD retries, DWORD timeout, DWORD* dwStatus, HANDLE hConnection)
{
CONNMGR_CONNECTIONINFO ConnectionInfo;
ZeroMemory (&amp;amp;ConnectionInfo, sizeof (ConnectionInfo));
ConnectionInfo.cbSize = sizeof (ConnectionInfo);

ConnectionInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
ConnectionInfo.dwFlags = CONNMGR_FLAG_PROXY_HTTP;
ConnectionInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
ConnectionInfo.guidDestNet = GetNetworkForURL (url);

return ConnMgrEstablishConnectionSync (&amp;amp;ConnectionInfo, &amp;amp;hConnection, timeout, dwStatus);

}

DWORD dwStatus = 0;
HANDLE hConnection = NULL;

DWORD doConnect(LPVOID lpvoid)
{
LPCTSTR url = L&quot;http://4pda.ru&quot;;
HRESULT hr = EstablishConnection (url, 10, 25000, &amp;amp;dwStatus, hConnection);
return 0;
}
</pre>
<p>Далее в мейне или там, где вам нужно осуществить соединение пишем</p>
<pre class="brush: cpp; title: ; notranslate">
HANDLE hReadThread = NULL;
DWORD dwThreadID;
if (hReadThread = CreateThread (NULL, 0, doConnect, 0, 0, &amp;amp;dwThreadID))
{
CloseHandle (hReadThread);
}
</pre>
<p>Данный код позволяет создавать подключение к GPRS в отдельном потоке, что позволяет не блокировать основной поток на время подключения.</p>
<p>Теперь немного обсудим, что в нашем примере написано:<br />
CreateThread &#8212; запуск функции в отдельном потоке.<br />
doConnect &#8212; вызов функции осуществляющей подключение к GPRS.<br />
EstablishConnection &#8212; функция осуществляющая подготовку всего необходимого для подключения.<br />
ConnMgrEstablishConnectionSync &#8212; WinApi осуществляющая подключения интернета.<br />
GetNetworkForURL &#8212; функция определяющая какую подсеть использовать для работы (в нашем случае интеренет).</p>
<p>Подробнее о ConnMgrEstablishConnectionSync и GetNetworkForURL Вы можете почитать на msdn&#8217;е.<br />
А я свою задачу показать Вам пример работы с GPRS выполнил.</p>
<p  class="related_post_title">Возможно Вас заинтересует:</p><ul class="related_post"><li><a href="http://freesmska.ru/pokazat-ubrat-klaviaturu-sip/" title="Показать/ убрать клавиатуру (sip)">Показать/ убрать клавиатуру (sip)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://freesmska.ru/winapi-primer-podklyucheniya-gprs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Показать/ убрать клавиатуру (sip)</title>
		<link>http://freesmska.ru/pokazat-ubrat-klaviaturu-sip/</link>
		<comments>http://freesmska.ru/pokazat-ubrat-klaviaturu-sip/#comments</comments>
		<pubDate>Mon, 24 May 2010 17:06:45 +0000</pubDate>
		<dc:creator>Темы4</dc:creator>
				<category><![CDATA[WinApi WinMobile]]></category>
		<category><![CDATA[WinApi]]></category>

		<guid isPermaLink="false">http://freesmska.ru/?p=509</guid>
		<description><![CDATA[Привет, дорогие читатели. Решил открыть новый раздел осваиваемых мной winapi функций. Поделится с вами, что я откопал и как этим пользоваться. Начнем с того, что WinApi &#8212; это набор базовых функций, позволяющий наиболее близко работать с операционными семействами Windows, что делает ваши программы более гибкими и удобными. Так как последнее время я отошел от C#, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-510" title="winapi примеры" src="http://freesmska.ru/wp-content/uploads/2010/05/bebe.jpg" alt="Показать/ убрать клавиатуру (sip)" width="250" height="266" /></p>
<p>Привет, дорогие читатели. Решил открыть новый раздел осваиваемых мной winapi функций. Поделится с вами, что я откопал и как этим пользоваться.</p>
<p>Начнем с того, что WinApi &#8212; это набор базовых функций, позволяющий наиболее близко работать с операционными семействами Windows, что делает ваши программы более гибкими и удобными.<br />
<span id="more-509"></span><br />
Так как последнее время я отошел от C#, то здесь буду выкладывать только WinApi для С++ (Qt).</p>
<p>Почему я стал интересоваться WinApi функциями?! Все очень просто, скорость выполнения программы написанной на данных функциях превышает скорость C#, Qt в несколько раз. А так же не один язык программирования не дает такую гибкость написания программ, как WinApi.</p>
<p>Приведу пример, в котором без WinApi просто не обойтись, допустим у Вас есть клавиатура (sip) у кпк и она располагается не в нижнем углу экрана, а чуть повыше, используя WinApi sip Вы легко сможете подвинуть клавиатуру в любую точку экрана.</p>
<p>Теперь перейдем не посредственно к тем функциям, что я сегодня приготовил:</p>
<p>Проблема, с которой я столкнулся: Qt удобный кросс платформенный комплекс, позволяющий Вам писать легко программы и портировать их на другие  платформы. Пишу я программу для кпк на нем, сделал данную программу во весь экран и добрался до того момента, когда мне потребовалось вводить текст в поле ввода. Так как прога полноэкранная, то разумеется к кнопочке вызова клавиатуры у меня доступа нет и функций, позволяющих вызвать клавиатуру я тоже не нашел.</p>
<p>После недолгих размышлений пришел к выводу: либо используем winapi, либо пишем свою клавиатуру.</p>
<p>Решил пока не мудрить и использовать winapi для sip клавиатуры. Далее привожу полный код sip keyboard api.</p>
<pre class="brush: cpp; title: ; notranslate">
#include &quot;sip.h&quot;
#include &quot;sipapi.h&quot;

HWND sip = FindWindow(TEXT(&quot;SipWndClass&quot;),NULL);
RECT oldSize;
GetWindowRect(sip,&amp;amp;oldSize);
LONG x =0;
LONG y =195;
LONG w =oldSize.right-oldSize.left;
LONG h = oldSize.bottom-oldSize.top;
SetWindowPos(sip,HWND_BOTTOM, x, y,w,h,SWP_NOZORDER);
//показать клаву
ShowWindow(sip, SW_SHOW);
//скрыть клаву
ShowWindow(sip, SW_HIDE);
</pre>
<p>Данный код позволяет вам отображать клавиатуру в любой точке экрана вашего кпк изменяя положение точек x и y. Вот и первые sip api, которые могут пригодится в хозяйстве.</p>
<p  class="related_post_title">Возможно Вас заинтересует:</p><ul class="related_post"><li><a href="http://freesmska.ru/winapi-primer-podklyucheniya-gprs/" title="WinApi пример подключения GPRS">WinApi пример подключения GPRS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://freesmska.ru/pokazat-ubrat-klaviaturu-sip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

