NsDialogs SetImageOLE: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
No edit summary
Line 32: Line 32:


nsDialogs::Show
nsDialogs::Show
${NSD_FreeImageOLE} $1
${NSD_FreeImageOLE} $1 ; Free the image once we're done with it!
FunctionEnd
FunctionEnd



Revision as of 14:13, 8 February 2009

Description

This header is an extension to the existing nsDialogs.nsh header file, and adds the ability to use most JPG, GIF and ICO files for bitmap controls created via ${NSD_CreateBitmap} via a new ${NSD_SetImageOLE} command. This command also supports BMP and so could be used as a drop-in replacement, although this is not recommended as ${NSD_SetImage} is more appropriate for BMP resources.

Attribution

This header is the result of the forum discussion "NSD_CreateBitmap, NSD_SetImage - JPEG support?" ( http://forums.winamp.com/showthread.php?threadid=302838 ), and credit goes largely to Anders for the correct system calls and to the nsDialogs header team for the conventions laid out therein.

Header

Example

outfile 'nsdialogs_setimageole.exe'
 
!include 'nsdialogs.nsh'
!include 'nsdialogs_setimageole.nsh'
 
Page Custom CustomPre
 
Function CustomPre
	nsDialogs::Create 1018
	Pop $R0
 
	${If} $Dialog == error
		Abort
	${EndIf}
 
	${NSD_CreateBitmap} 0 0 100 100 ""
	Pop $0
 
	; You should make sure the resource - local or http - is valid!
	${NSD_SetImageOLE} $0 "http://nsis.sourceforge.net/mediawiki/skins/nsis/logo.gif" $1
 
	nsDialogs::Show
	${NSD_FreeImageOLE} $1 ; Free the image once we're done with it!
FunctionEnd
 
Section
SectionEnd