Monitoring Compressor and Decompressor Progress

The following example shows how the ICSetStatusProc function is used to inform the compressor or decompressor of the callback function address:

ICSetStatusProc(compvars.hic, 0, (LPARAM) (UINT) hwndApp,

&PreviewStatusProc);

The following example shows the callback function installed by the previous fragment:

LONG CALLBACK export PreviewStatusProc(LPARAM lParam,

UINT message, LONG l)

{

switch (message)

{

MSG msg;

case ICSTATUS_START:

// Create and display status dialog box.

break;

case ICSTATUS_STATUS:

ProSetBarPos((int) l); // sets status bar positions

// Watch for abort message

while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))

{

if (msg.message == WM_KEYDOWN && msg.wParam ==

VK_ESCAPE)

return 1;

if (msg.message == WM_SYSCOMMAND &&

(msg.wParam & 0xFFF0) == SC_CLOSE)

return 1;

TranslateMessage(&msg);

DispatchMessage(&msg);

}

break;

case ICSTATUS_END:

// Close and destroy status dialog box.

break;

case ICSTATUS_YIELD:

break;

}

return 0;

}

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database