// This code uses the #import directive.
// Put the following line at the beginning of your module
#import "XCEEDSCO.DLL" no_namespace named_guids
CoInitialize( NULL );
try
{
IXceedStreamingCompressionPtr piComp;
piComp.CreateInstance( CLSID_XceedStreamingCompression );
piComp->License( _bstr_t( L"your license key ) );
IXceedStandardCompressionFormatPtr piFormat;
piFormat.CreateInstance( CLSID_XceedStandardCompressionFormat );
piComp->CompressionFormat = IXceedCompressDataPtr( piFormat );
const char* pszSource = "This is the data to compress compress compress";
// Let's say we want to compress the null-char too
DWORD dwSourceSize = lstrlen( pszSource ) + 1;
BYTE* pcCompressed = NULL;
DWORD dwCompressedSize = 0;
piComp->Compress( ( BYTE* )pszSource, dwSourceSize, TRUE, &pcCompressed, &dwCompressedSize );
MessageBox( NULL, "Data compressed successfully", "Compression result", MB_OK );
CoTaskMemFree( pcCompressed );
}
catch( const _com_error& xErr )
{
char szMsg[50];
wsprintf( szMsg, "Error %08x: %s\n",
xErr.Error(), ( const char* )xErr.Description() );
MessageBox( NULL, szMsg, "Error", MB_OK );
}
catch( ... )
{
MessageBox( NULL, "Unknown error", "Error", MB_OK );
}
CoUninitialize();