FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Pocket PC Set storage used memory
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Set storage used memory
Posted: Tue Sep 01, 2009 09:23 AM
These new functions allow you to reduce the storage space and increase the free memory:
Code (fw): Select all Collapse
typedef BOOL  ( __stdcall * GetSystemMemoryDivisionProc )( LPDWORD, LPDWORD, LPDWORD );
typedef DWORD ( __stdcall * SetSystemMemoryDivisionProc )( DWORD );

HB_FUNC( GETMEMDIVISION )
{
    HINSTANCE hCoreDll = LoadLibrary(_T("coredll.dll"));
    GetSystemMemoryDivisionProc procGet = 
        (GetSystemMemoryDivisionProc)GetProcAddressW(
        hCoreDll, _T("GetSystemMemoryDivision"));

    DWORD dwStoragePages;
    DWORD dwRamPages;
    DWORD dwPageSize;

    procGet( &dwStoragePages, &dwRamPages, &dwPageSize );
    
    hb_reta( 3 );
    hb_stornl( dwStoragePages, -1, 1 );
    hb_stornl( dwRamPages, -1, 2 );
    hb_stornl( dwPageSize, -1, 3 );

    FreeLibrary( hCoreDll );
}

HB_FUNC( SETMEMDIVISION )
{
    int nStoragePages = hb_parnl( 1 );

    HINSTANCE hCoreDll = LoadLibrary(_T("coredll.dll"));
    SetSystemMemoryDivisionProc procSet = 
        (SetSystemMemoryDivisionProc)GetProcAddressW(
        hCoreDll, _T("SetSystemMemoryDivision"));

    hb_retnl( procSet( nStoragePages ) );

    FreeLibrary(hCoreDll);
}

#pragma ENDDUMP

Explanation here:
http://www.pocketpcdn.com/articles/memorydivision.html
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion