P>

imagem.JPG

Clique aqui para ler todos os artigos desta edição

 

Criando uma aplicação para troca de arquivos entre o Micro e o PocketPC

 

É cada vez mais comum querermos carregar músicas e imagens em um dispositivo móvel, e existem diversas opções no mercado, mas imagine usar o seu PocketPC para realizar essa tarefa. Para isso, você terá que ter um meio fácil para copiar os arquivos do micro para o Pocket e vice-versa. Mas como construir essa aplicação?

Felizmente existe uma maneira simples para realizar essa tarefa e pode ser feita através da RAPI do Windows Mobile. Na prática, significa que podemos executar diversas tarefas no PocketPC enquanto ele estiver conectado ao micro através do ActiveSync (ler Nota 1), como: realizar a troca de arquivos, executar programas etc.

Neste artigo criaremos uma aplicação que copiará suas músicas e vídeos do micro para o PocketPC e explicaremos detalhadamente esse processo.

 

Programa responsável por realizar a conexão entre o micro e o PocketPC. Sempre que você conecta o PocketPC ao micro, o ActiveSync é executado e cria a conexão entre os dois.

 

Entendendo a RAPI

Remote Application Program Interface é um conjunto de funções existentes no Windows Mobile que possibilita a execução de tarefas remotamente no PocketPC, enquanto ele estiver conectado ao micro através da base ou cabo.

Em nossa aplicação, desenvolveremos uma classe que executará as funções de copiar arquivos do micro para o PocketPC, do PocketPC para o micro, listar arquivos no PocketPC e a execução de programas no PocketPC.

Iniciando o projeto da aplicação

Para iniciarmos, crie um novo projeto Windows Application no Visual Studio 2005 (Figura 1).

 

image003.gifFigura 1. Criando um projeto Windows Forms no Visual Studio 2005.

Depois de criar o projeto, abra o Solution Explorer e adicione uma classe (menu Project>Add Class) chamada “CDSPocketTools.cs” (Figura 2).

 

image004.png      Figura 2. Adicionando a classe ao projeto.

 

Adicionando funcionalidade à classe

A classe CDSPocketTools.cs é a principal parte da aplicação, pois conterá todas as chamadas à RAPI. Vamos iniciar a construção da classe adicionando as variáveis e estruturas internas, de acordo com a Listagem 1.

 

Listagem 1. Definindo as chamadas para a RAPI.

01. using System;

02. using System.Runtime.InteropServices;

03. using System.IO;

04. using System.Threading;

05. using System.Collections;

06.

07. namespace CDSSoftware

08. {

09.     public class CDSPocketTools

10.     {

11.               //controla o processo de execução remota de

12.          //programas no PocketPC

13.               public struct PROCESS_INFORMATION

14.               {

15.                        long  hProcess;

16.                        long  hThread;

17.                        long  dwProcessId;

18.                        long  dwThreadId;

19.               };

20.

21.          int FILE_ATTRIBUTE_NORMAL = 0x80;

22.          //arquivo compartilhado para leitura

23.          int FILE_SHARE_READ = 0x00000001;

24.          //arquivo compartilhado para escrita

25.          int FILE_SHARE_WRITE = 0x00000002;

26.          //arquivo genérico para leitura

27.          uint GENERIC_READ = 0x80000000;

28.          //arquivo genérico para escrita

29.          uint GENERIC_WRITE = 0x40000000;

30.          //criar novo arquivo

31.          int CREATE_NEW = 1;

32.          //criar sempre o arquivo

33.          int CREATE_ALWAYS = 2;

34.          //abrir o arquivo caso ela exista

35.          int OPEN_EXISTING = 3;

36.          //abrir o arquivo sempre

37.          int OPEN_ALWAYS = 4;

38.    }

39.}

 

Continuamos agora com a inserção das chamadas para a RAPI. Para isso, faremos várias declarações usando o método DLLImport do Visual Studio 2005, que permite o acesso às funções pertencentes a RAPI.dll instalada no PocketPC.

O uso de DLLImport significa que estamos acessando um recurso diretamente do sistema operacional, e isso é tratado como código não gerenciado pelo .NET Framework. O código deverá ser incluído na seqüência da Listagem 1 e pode ser visto na Listagem 2.

 

Listagem 2. Inserindo as chamadas para a RAPI.

...

01. [DllImport("rapi.dll")]

02. public static extern int CeRapiInit();

03.

04. [DllImport("rapi.dll")]

05. public static extern int CeRapiUninit();

 

06. [DllImport("rapi.dll")]

07. public static extern int CeGetLastError();

...

Quer ler esse conteúdo completo? Tenha acesso completo