Amigos
Existe alguna función que devuelva el path de las tarjetas de almacenamiento (Storage Card) que tiene una PDA??
Gracias de antemano.
Saludos
function Main()
LOCAL a
a := PPCSDCARDS()
Aeval(a, {|n | MsgInfo( n ) } )
RETURN NIL
#pragma BEGINDUMP
#include <hbapi.h>
#include <hbvm.h>
#include <windows.h>
#include <aygshell.h>
#include <hbapiitm.h>
#include "wininet.h"
HB_FUNC( PPCSDCARDS )
{
PHB_ITEM sdCards;
PHB_ITEM sdCard;
LPSTR vMsg;
int index;
// Total number of storage cards found.
int iNumOfFlashCard = 0;
// Maximum number of storage cards to find.
int iMaxCards = 10;
// Whether to continue searching after finding a card.
BOOL bContinue = TRUE;
// Root directory path of storage cards.
TCHAR szRootDirPath[MAX_PATH];
// String for storing the storage card name with the full path.
CHAR szSCName[MAX_PATH];
// Search handle for storage cards.
HANDLE hFlashCard;
// Structure for storing card information.
WIN32_FIND_DATA *lpwfdFlashCard;
// Structure for storing card information temporarily.
WIN32_FIND_DATA *lpwfdFlashCardTmp;
lpwfdFlashCardTmp = (WIN32_FIND_DATA *) LocalAlloc
(LPTR, iMaxCards * sizeof (WIN32_FIND_DATA));
// Test for failed memory allocation.
if (lpwfdFlashCardTmp == NULL)
return;
hFlashCard = FindFirstFlashCard (&lpwfdFlashCardTmp [0]);
if (hFlashCard == INVALID_HANDLE_VALUE)
{
// Free the memory.
LocalFree (lpwfdFlashCardTmp);
return;
}
while (bContinue)
{
iNumOfFlashCard += 1;
// Search for the next storage card.
bContinue = FindNextFlashCard (hFlashCard,
&lpwfdFlashCardTmp [iNumOfFlashCard]);
}
// Close the search handle.
FindClose (hFlashCard);
sdCards = hb_itemArrayNew( iNumOfFlashCard ) ;
sdCard = hb_itemNew( NULL );
if (iNumOfFlashCard > 0)
{
// Allocate memory for lpwfdFlashCard.
lpwfdFlashCard = (WIN32_FIND_DATA *) LocalAlloc
(LPTR, iNumOfFlashCard * sizeof (WIN32_FIND_DATA));
// Test for failed memory allocation.
if (lpwfdFlashCard == NULL)
{
// Free the temp card memory.
LocalFree (lpwfdFlashCardTmp);
return;
}
// Assign lpwfdFlashCardTmp to lpwfdFlashCard.
for (index=0; index < iNumOfFlashCard; ++index)
{
lpwfdFlashCard [index] = lpwfdFlashCardTmp [index];
vMsg = WideToAnsi(lpwfdFlashCard[index].cFileName);
sdCard = hb_itemPutC(NULL, vMsg ) ;
hb_itemArrayPut( sdCards, index+1, sdCard );
hb_xfree( (void *) vMsg);
}
// Free the memory.
LocalFree (lpwfdFlashCard);
}
LocalFree (lpwfdFlashCardTmp);
hb_itemReturn(sdCards);
hb_itemRelease(sdCards);
hb_itemRelease(sdCard);
}
#pragma ENDDUMP
Return to FiveWin para Pocket PC
Users browsing this forum: No registered users and 28 guests