// POOMContact.cpp: implementation of the POOMContact class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "POOMContact.h"
#include "PimalDateHelper.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// extractViewData
// extracts only the ids from the datasets from the device and returns this:
// [ID on device]+DATASET_SEP
// ...
//////////////////////////////////////////////////////////////////////
CString POOMContact::extractViewData()
{
CString retVal;
// get the information needed out of the actual item and store it into temp variables
long id;
contact->get_Oid(&id);
// formatting the id as a CString
CString strId;
strId.Format(_T("%ld"), id);
// attach a new line with the data accomplished to the return value
retVal = strId + DATASET_SEP;
return retVal;
}
//////////////////////////////////////////////////////////////////////
// extractAllData
// extracts all data from this contact puts it into a String formatted like this:
// [ID on device]+D1_SEP+[Title]+D1_SEP+[FirstName]+D1_SEP+[MiddleName]+D1_SEP+[LastName]+D1_SEP+[Suffix]+D1_SEP+[Job Title]+D1_SEP+[Department]+D1_SEP+[Company]+D1_SEP+[Work Tel]+D1_SEP+[Work2 Tel]+D1_SEP+[Home Tel]+D1_SEP+[Home2 Tel]+D1_SEP+[Mobile Tel]+D1_SEP+[Pager]+D1_SEP+[Car Tel]+D1_SEP+|Work fax]+D1_SEP+[Home fax]+D1_SEP+[Assistant tel]+D1_SEP+[Radio tel]+D1_SEP+[Email]+D1_SEP+[Email2]+D1_SEP+[Email3]+D1_SEP+[Web Page]+D1_SEP+[Work Street]+D1_SEP+[Work City]+D1_SEP+[Work State]+D1_SEP+[Work ZIP]+D1_SEP+[Work Country]+D1_SEP+[Office loc]+D1_SEP+[Home Street]+D1_SEP+[Home City]+D1_SEP+[Home State]+D1_SEP+[Home ZIP]+D1_SEP+[Home Country]+D1_SEP+[Other Street]+D1_SEP+[Other City]+D1_SEP+[Other State]+D1_SEP+[Other CIP]+D1_SEP+[Other Country]+D1_SEP+[Categories, separated by ?]+D1_SEP+[Assistant]+D1_SEP+[Birthday, format JJJJ-MM-DD]+D1_SEP+[Anniversary, format JJJJ-MM-DD]+D1_SEP+[Spouse]+D1_SEP+[Children]+D1_SEP+[Note]+DATASET_SEP
// [ID on device]+D1_SEP+[Title]+D1_SEP+[FirstName]+D1_SEP+[MiddleName]+D1_SEP+[LastName]+D1_SEP+[Suffix]+D1_SEP+[Job Title]+D1_SEP+[Department]+D1_SEP+[Company]+D1_SEP+[Work Tel]+D1_SEP+[Work2 Tel]+D1_SEP+[Home Tel]+D1_SEP+[Home2 Tel]+D1_SEP+[Mobile Tel]+D1_SEP+[Pager]+D1_SEP+[Car Tel]+D1_SEP+|Work fax]+D1_SEP+[Home fax]+D1_SEP+[Assistant tel]+D1_SEP+[Radio tel]+D1_SEP+[Email]+D1_SEP+[Email2]+D1_SEP+[Email3]+D1_SEP+[Web Page]+D1_SEP+[Work Street]+D1_SEP+[Work City]+D1_SEP+[Work State]+D1_SEP+[Work ZIP]+D1_SEP+[Work Country]+D1_SEP+[Office loc]+D1_SEP+[Home Street]+D1_SEP+[Home City]+D1_SEP+[Home State]+D1_SEP+[Home ZIP]+D1_SEP+[Home Country]+D1_SEP+[Other Street]+D1_SEP+[Other City]+D1_SEP+[Other State]+D1_SEP+[Other CIP]+D1_SEP+[Other Country]+D1_SEP+[Categories, separated by ?]+D1_SEP+[Assistant]+D1_SEP+[Birthday, format JJJJ-MM-DD]+D1_SEP+[Anniversary, format JJJJ-MM-DD]+D1_SEP+[Spouse]+D1_SEP+[Children]+D1_SEP+[Note]+DATASET_SEP
// ...
//////////////////////////////////////////////////////////////////////
CString POOMContact::extractAllData()
{
CString retVal;
// get the information needed out of the actual item and store it into temp variables
LPTSTR title, firstName, middleName, lastName, suffix, jobTitle, department, company, workTel, workTel2, homeTel, homeTel2, mobileTel, pager, carTel, workFax, homeFax, assistantTel, radioTel, email, email2, email3, webPage, workStreet, workCity, workState, workZip, workCountry, officeLoc, homeStreet, homeCity, homeState, homeZip, homeCountry, otherStreet, otherCity, otherState, otherZip, otherCountry, categories, assistant, spouse, children, note;
CString birthday, anniversary;
DATE anniversaryAsDate, birthdayAsDate;
long id;
contact->get_Oid(&id);
contact->get_Title(&title);
contact->get_FirstName(&firstName);
contact->get_MiddleName(&middleName);
contact->get_LastName(&lastName);
contact->get_Suffix(&suffix);
contact->get_JobTitle(&jobTitle);
contact->get_Department(&department);
contact->get_CompanyName(&company);
contact->get_BusinessTelephoneNumber(&workTel);
contact->get_Business2TelephoneNumber(&workTel2);
contact->get_HomeTelephoneNumber(&homeTel);
contact->get_Home2TelephoneNumber(&homeTel2);
contact->get_MobileTelephoneNumber(&mobileTel);
contact->get_PagerNumber(&pager);
contact->get_CarTelephoneNumber(&carTel);
contact->get_BusinessFaxNumber(&workFax);
contact->get_HomeFaxNumber(&homeFax);
contact->get_AssistantTelephoneNumber(&assistantTel);
contact->get_RadioTelephoneNumber(&radioTel);
contact->get_Email1Address(&email);
contact->get_Email2Address(&email2);
contact->get_Email3Address(&email3);
contact->get_WebPage(&webPage);
contact->get_BusinessAddressStreet(&workStreet);
contact->get_BusinessAddressCity(&workCity);
contact->get_BusinessAddressState(&workState);
contact->get_BusinessAddressPostalCode(&workZip);
contact->get_BusinessAddressCountry(&workCountry);
contact->get_OfficeLocation(&officeLoc);
contact->get_HomeAddressStreet(&homeStreet);
contact->get_HomeAddressCity(&homeCity);
contact->get_HomeAddressState(&homeState);
contact->get_HomeAddressPostalCode(&homeZip);
contact->get_HomeAddressCountry(&homeCountry);
contact->get_OtherAddressStreet(&otherStreet);
contact->get_HomeAddressCity(&otherCity);
contact->get_HomeAddressState(&otherState);
contact->get_HomeAddressPostalCode(&otherZip);
contact->get_HomeAddressCountry(&otherCountry);
contact->get_Categories(&categories);
contact->get_AssistantName(&assistant);
contact->get_Anniversary(&anniversaryAsDate);
contact->get_Birthday(&birthdayAsDate);
contact->get_Spouse(&spouse);
contact->get_Children(&children);
contact->get_Body(¬e);
// formatting anniversary and birthday as a String
PimalDateHelper anniversaryAsPimalDateHelper(anniversaryAsDate);
PimalDateHelper birthdayAsPimalDateHelper(birthdayAsDate);
// formatting the id as a CString
CString strId;
strId.Format(_T("%ld"), id);
// storing the value in oid (attribute) as BSTR
oid = strId.AllocSysString();
// attach a new line with the data accomplished to the return value
retVal = strId + D1_SEP + (CString)title + D1_SEP + (CString)firstName + D1_SEP + (CString)middleName + D1_SEP + (CString)lastName + D1_SEP + (CString)suffix + D1_SEP + (CString)jobTitle + D1_SEP + (CString)department + D1_SEP + (CString)company + D1_SEP + (CString)workTel + D1_SEP + (CString)workTel2 + D1_SEP + (CString)homeTel + D1_SEP + (CString)homeTel2 + D1_SEP + (CString)mobileTel + D1_SEP + (CString)pager + D1_SEP + (CString)carTel + D1_SEP + (CString)workFax + D1_SEP + (CString)homeFax + D1_SEP + (CString)assistantTel + D1_SEP + (CString)radioTel + D1_SEP + (CString)email + D1_SEP + (CString)email2 + D1_SEP + (CString)email3 + D1_SEP + (CString)webPage + D1_SEP + (CString)workStreet + D1_SEP + (CString)workCity + D1_SEP + (CString)workState + D1_SEP + (CString)workZip + D1_SEP + (CString)workCountry + D1_SEP + (CString)officeLoc + D1_SEP + (CString)homeStreet + D1_SEP + (CString)homeCity + D1_SEP + (CString)homeState + D1_SEP + (CString)homeZip + D1_SEP + (CString)homeCountry + D1_SEP + (CString)otherStreet + D1_SEP + (CString)otherCity + D1_SEP + (CString)otherState + D1_SEP + (CString)otherZip + D1_SEP + (CString)otherCountry + D1_SEP + (CString)categories + D1_SEP + (CString)assistant + D1_SEP + birthdayAsPimalDateHelper.getGenericDateString() + D1_SEP + anniversaryAsPimalDateHelper.getGenericDateString() + D1_SEP + (CString)spouse + D1_SEP + (CString)children + D1_SEP + (CString)note + DATASET_SEP;
return retVal;
}
//////////////////////////////////////////////////////////////////////
// save() saves the stored IContact (all changes made are stored on the device
// and refreshes the oid
//////////////////////////////////////////////////////////////////////
BOOL POOMContact::save()
{
HRESULT h = contact->Save();
long id;
CString strId;
contact->get_Oid(&id);
strId.Format(_T("%ld"), id);
oid = strId.AllocSysString();
return h == 0;
}
//////////////////////////////////////////////////////////////////////
// getOid() returns the Oid of the IContact as a BSTR
//////////////////////////////////////////////////////////////////////
BSTR POOMContact::getOid()
{
return oid;
}
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
POOMContact::POOMContact(IContact* tmp)
{
contact = tmp;
}
POOMContact::POOMContact(IContact* tmp, BSTR middleName)
{
contact = tmp;
contact->put_FirstName(middleName);
}
POOMContact::POOMContact(IContact* tmp, BSTR title, BSTR firstName, BSTR middleName, BSTR lastName, BSTR suffix, BSTR jobTitle, BSTR department, BSTR company, BSTR workTel, BSTR workTel2, BSTR homeTel, BSTR homeTel2, BSTR mobileTel, BSTR pager, BSTR carTel, BSTR workFax, BSTR homeFax, BSTR assistantTel, BSTR radioTel, BSTR email, BSTR email2, BSTR email3, BSTR webPage, BSTR workStreet, BSTR workCity, BSTR workState, BSTR workZip, BSTR workCountry, BSTR officeLoc, BSTR homeStreet, BSTR homeCity, BSTR homeState, BSTR homeZip, BSTR homeCountry, BSTR otherStreet, BSTR otherCity, BSTR otherState, BSTR otherZip, BSTR otherCountry, BSTR categories, BSTR assistant, BSTR birthdayAsPimalDateHelperGenericDateString, BSTR anniversaryAsPimalDateHelperGenericDateString, BSTR spouse, BSTR children, BSTR note)
{
contact = tmp;
if (title && title != UNCHANGED) contact->put_Title(title);
if (firstName && firstName != UNCHANGED) contact->put_FirstName(firstName);
if (middleName && middleName != UNCHANGED) contact->put_MiddleName(middleName);
if (lastName && lastName != UNCHANGED) contact->put_LastName(lastName);
if (suffix && suffix != UNCHANGED) contact->put_Suffix(suffix);
if (jobTitle && jobTitle != UNCHANGED) contact->put_JobTitle(jobTitle);
if (department && department != UNCHANGED) contact->put_Department(department);
if (company && company != UNCHANGED) contact->put_CompanyName(company);
if (workTel && workTel != UNCHANGED) contact->put_BusinessTelephoneNumber(workTel);
if (workTel2 && workTel2 != UNCHANGED) contact->put_Business2TelephoneNumber(workTel2);
if (homeTel && homeTel != UNCHANGED) contact->put_HomeTelephoneNumber(homeTel);
if (homeTel2 && homeTel2 != UNCHANGED) contact->put_Home2TelephoneNumber(homeTel2);
if (mobileTel && mobileTel != UNCHANGED) contact->put_MobileTelephoneNumber(mobileTel);
if (pager && pager != UNCHANGED) contact->put_PagerNumber(pager);
if (carTel && carTel != UNCHANGED) contact->put_CarTelephoneNumber(carTel);
if (workFax && workFax != UNCHANGED) contact->put_BusinessFaxNumber(workFax);
if (homeFax && homeFax != UNCHANGED) contact->put_HomeFaxNumber(homeFax);
if (assistantTel && assistantTel != UNCHANGED) contact->put_AssistantTelephoneNumber(assistantTel);
if (radioTel && radioTel != UNCHANGED) contact->put_RadioTelephoneNumber(radioTel);
if (email && email != UNCHANGED) contact->put_Email1Address(email);
if (email2 && email2 != UNCHANGED) contact->put_Email2Address(email2);
if (email3 && email3 != UNCHANGED) contact->put_Email3Address(email3);
if (webPage && webPage != UNCHANGED) contact->put_WebPage(webPage);
if (workStreet && workStreet != UNCHANGED) contact->put_BusinessAddressStreet(workStreet);
if (workCity && workCity != UNCHANGED) contact->put_BusinessAddressCity(workCity);
if (workState && workState != UNCHANGED) contact->put_BusinessAddressState(workState);
if (workZip && workZip != UNCHANGED) contact->put_BusinessAddressPostalCode(workZip);
if (workCountry && workCountry != UNCHANGED) contact->put_BusinessAddressCountry(workCountry);
if (officeLoc && officeLoc != UNCHANGED) contact->put_OfficeLocation(officeLoc);
if (homeStreet && homeStreet != UNCHANGED) contact->put_HomeAddressStreet(homeStreet);
if (homeCity && homeCity != UNCHANGED) contact->put_HomeAddressCity(homeCity);
if (homeState && homeState != UNCHANGED) contact->put_HomeAddressState(homeState);
if (homeZip && homeZip != UNCHANGED) contact->put_HomeAddressPostalCode(homeZip);
if (homeCountry && homeCountry != UNCHANGED) contact->put_HomeAddressCountry(homeCountry);
if (otherStreet && otherStreet != UNCHANGED) contact->put_OtherAddressStreet(otherStreet);
if (otherCity && otherCity != UNCHANGED) contact->put_HomeAddressCity(otherCity);
if (otherState && otherState != UNCHANGED) contact->put_HomeAddressState(otherState);
if (otherZip && otherZip != UNCHANGED) contact->put_HomeAddressPostalCode(otherZip);
if (otherCountry && otherCountry != UNCHANGED) contact->put_HomeAddressCountry(otherCountry);
if (categories && categories != UNCHANGED) contact->put_Categories(categories);
if (assistant && assistant != UNCHANGED) contact->put_AssistantName(assistant);
if (anniversaryAsPimalDateHelperGenericDateString && anniversaryAsPimalDateHelperGenericDateString != UNCHANGED)
{
PimalDateHelper anniversary(anniversaryAsPimalDateHelperGenericDateString);
contact->put_Anniversary(anniversary.getDATE());
}
if (birthdayAsPimalDateHelperGenericDateString && birthdayAsPimalDateHelperGenericDateString != UNCHANGED)
{
PimalDateHelper birthday(birthdayAsPimalDateHelperGenericDateString);
contact->put_Birthday(birthday.getDATE());
}
if (spouse && spouse != UNCHANGED) contact->put_Spouse(spouse);
if (children && children != UNCHANGED) contact->put_Children(children);
if (note && note != UNCHANGED) contact->put_Body(note);
}
Antonio Linares wrote:Accediendo a los contactos usando C#:
http://www.codeguru.com/csharp/csharp/c ... php/c10773
Posiblemente podamos adaptarlo a FWPPC
#include "registry"
new(hKey$, TINT);
new(dwDispostion$, TINT);
if (RegOpenKeyEx(HKEY_CLASSES_ROOT, "TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0\\0\\win32", 0, 0, &hKey$) != 0)
RegCreateKeyEx(HKEY_CLASSES_ROOT, "TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey$, &dwDisposition$);
RegCreateKeyEx(HKEY_CLASSES_ROOT, "TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey$, &dwDisposition$);
RegCreateKeyEx(HKEY_CLASSES_ROOT, "TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0\\0", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey$, &dwDisposition$);
RegCreateKeyEx(HKEY_CLASSES_ROOT, "TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0\\0\\win32", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey$, &dwDisposition$);
end;
ShowMessage(hKey$);
value$ = "\\windows\\pimtlb.dll";
RegSetValueEx(hKey$, 0, NULL, REG_SZ, value$, length(value$) * 2 + 1);
RegCloseKey(hKey$);
showmessage(registerdll("pimstore.dll"));
poom$ = CreateCOMObject("PocketOutlook.Application");
ShowMessage(poom$);
result$ = Invoke(poom$, "logon");
showMessage(result$);
folder$ = Invoke(poom$, "GetDefaultFolder", 10);
ShowMessage(folder$);
Instructs an in-process server to create its registry entries for all classes supported in this server module
#pragma BEGINDUMP
#include <hbapi.h>
#define UNDER_CE
#include <windows.h>
LPWSTR AnsiToWide( char * );
typedef LONG ( * PDLLREGISTERSERVER ) ( void );
HB_FUNC( REGISTERDLL )
{
LPWSTR pW = AnsiToWide( hb_parc( 1 ) );
HMODULE hDll = LoadLibrary( pW );
LONG lReturn = 0;
hb_xfree( pW );
if( hDll )
{
LPWSTR pW = AnsiToWide( "DllRegisterServer" );
FARPROC pRegisterServer = GetProcAddress( hDll, pW );
hb_xfree( pW );
if( pRegisterServer )
lReturn = ( ( PDLLREGISTERSERVER ) pRegisterServer )();
FreeLibrary( hDll );
}
hb_retnl( lReturn );
}
#pragma ENDDUMP
#include "fwce.ch"
function Main()
MsgInfo( ValType( CreateObject( "4E130E40-7DBE-11D2-8F23-0000F87A4335" ) ) )
return nil
Con el Resco Registry.Antonio Linares wrote:Como has inspeccionado ese valor del registro ? Con RegQueryValue() ?
Me da el mismo error.Antonio Linares wrote:Prueba este codigo:
- Code: Select all Expand view
#include "fwce.ch"
function Main()
MsgInfo( ValType( CreateObject( "4E130E40-7DBE-11D2-8F23-0000F87A4335" ) ) )
return nil
Esta librería esta referenciada en:Antonio Linares wrote:De todas formas en el ejemplo la que registra es esta:
showmessage(registerdll("pimstore.dll"))
#include "FWCE.ch"
function Main()
local hDLL1 := LoadLibrary( "pimstore.dll" )
local hDLL2 := LoadLibrary( "pimtlb.dll" )
MsgInfo( hDLL1 )
MsgInfo( hDLL2 )
FreeLibrary( hDLL1 )
FreeLibrary( hDLL2 )
return nil
#include "FWCE.ch"
#define HKEY_CLASSES_ROOT 0x80000000
function Main()
local oOutLook, hKey
RegCreateKeyEx( HKEY_CLASSES_ROOT, "TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}" )
RegCreateKeyEx( HKEY_CLASSES_ROOT,;
"TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0" )
RegCreateKeyEx( HKEY_CLASSES_ROOT,;
"TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0\\0" )
RegCreateKeyEx( HKEY_CLASSES_ROOT,;
"TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0\\0\\win32",;
,,,,, @hKey, )
MsgInfo( hKey )
MsgInfo( RegisterServer( "pimstore.dll" ) )
oOutLook = CreateObject( "PocketOutlook.Application" )
MsgInfo( oOutLook:ClassName() )
return nil
#pragma BEGINDUMP
#include <hbapi.h>
#define UNDER_CE
#include <windows.h>
LPWSTR AnsiToWide( char * );
typedef LONG ( * PDLLREGISTERSERVER ) ( void );
HB_FUNC( REGISTERSERVER )
{
LPWSTR pW = AnsiToWide( hb_parc( 1 ) );
HMODULE hDll = LoadLibrary( pW );
LONG lReturn = 0;
hb_xfree( pW );
if( hDll )
{
LPWSTR pW = AnsiToWide( "DllRegisterServer" );
FARPROC pRegisterServer = GetProcAddress( hDll, pW );
hb_xfree( pW );
if( pRegisterServer )
lReturn = ( ( PDLLREGISTERSERVER ) pRegisterServer )();
FreeLibrary( hDll );
}
hb_retnl( lReturn );
}
HB_FUNC( REGCREATEKEYEX )
{
LPWSTR pW = AnsiToWide( hb_parc( 2 ) );
HKEY hkResult;
DWORD dwDisposition;
hb_retnl( RegCreateKeyEx( ( HKEY ) hb_parnl( 1 ), pW, hb_parnl( 3 ),
( LPWSTR ) hb_parnl( 4 ), hb_parnl( 5 ), KEY_ALL_ACCESS,
( LPSECURITY_ATTRIBUTES ) hb_parnl( 7 ),
( PHKEY ) &hkResult, &dwDisposition ) );
hb_xfree( pW );
hb_stornl( ( LONG ) hkResult, 8 );
hb_stornl( ( LONG ) dwDisposition, 9 );
}
#pragma ENDDUMP
#include "FWCE.ch"
#define HKEY_CLASSES_ROOT 0x80000000
function Main()
local oOutLook, hKey
RegCreateKeyEx( HKEY_CLASSES_ROOT, "TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}" )
RegCreateKeyEx( HKEY_CLASSES_ROOT,;
"TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0" )
RegCreateKeyEx( HKEY_CLASSES_ROOT,;
"TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0\\0" )
RegCreateKeyEx( HKEY_CLASSES_ROOT,;
"TypeLib\\{4E130E40-7DBE-11D2-8F23-0000F87A4335}\\1.0\\0\\win32",;
,,,,, @hKey, )
RegSetValueEx( hKey, 0, 0, 0, "\\Storage card\\pimtlb.dll" )
RegQueryValueEx( hKey )
RegisterServer( "pimstore.dll" )
oOutLook = CreateObject( "PocketOutlook.Application" )
MsgInfo( oOutLook:ClassName() )
return nil
#pragma BEGINDUMP
#include <hbapi.h>
#define UNDER_CE
#include <windows.h>
LPWSTR AnsiToWide( char * );
typedef LONG ( * PDLLREGISTERSERVER ) ( void );
HB_FUNC( REGISTERSERVER )
{
LPWSTR pW = AnsiToWide( hb_parc( 1 ) );
HMODULE hDll = LoadLibrary( pW );
LONG lReturn = 0;
hb_xfree( pW );
if( hDll )
{
LPWSTR pW = AnsiToWide( "DllRegisterServer" );
FARPROC pRegisterServer = GetProcAddress( hDll, pW );
hb_xfree( pW );
if( pRegisterServer )
lReturn = ( ( PDLLREGISTERSERVER ) pRegisterServer )();
FreeLibrary( hDll );
}
hb_retnl( lReturn );
}
HB_FUNC( REGCREATEKEYEX )
{
LPWSTR pW = AnsiToWide( hb_parc( 2 ) );
HKEY hkResult;
DWORD dwDisposition;
hb_retnl( RegCreateKeyEx( ( HKEY ) hb_parnl( 1 ), pW, hb_parnl( 3 ),
( LPWSTR ) hb_parnl( 4 ), hb_parnl( 5 ), KEY_ALL_ACCESS,
( LPSECURITY_ATTRIBUTES ) hb_parnl( 7 ),
( PHKEY ) &hkResult, &dwDisposition ) );
hb_xfree( pW );
hb_stornl( ( LONG ) hkResult, 8 );
hb_stornl( ( LONG ) dwDisposition, 9 );
}
HB_FUNC( REGSETVALUEEX )
{
LPWSTR pW = AnsiToWide( hb_parc( 5 ) );
hb_retnl( RegSetValueEx( ( HKEY ) hb_parnl( 1 ), NULL, hb_parnl( 3 ),
REG_SZ, ( const BYTE * ) pW, ( hb_parclen( 5 ) * 2 ) + 1 ) );
hb_xfree( pW );
}
HB_FUNC( REGQUERYVALUEEX )
{
DWORD dwType;
BYTE buffer[ 100 ];
DWORD cbData = 99;
hb_retnl( RegQueryValueEx( ( HKEY ) hb_parnl( 1 ), NULL, 0, &dwType, buffer, &cbData ) );
MessageBox( 0, ( LPWSTR ) buffer, L"ok", 0 );
}
#pragma ENDDUMP
Return to FiveWin para Pocket PC
Users browsing this forum: No registered users and 7 guests