From 1c87dd98c40af09080f29564bd4611a0ccbe40a9 Mon Sep 17 00:00:00 2001 From: dolphin6k Date: Fri, 15 Oct 2021 22:54:42 +0900 Subject: [PATCH] deleted OCSetupHlp.iss --- win32/OCSetupHlp.iss | 719 ------------------------------------------- 1 file changed, 719 deletions(-) delete mode 100644 win32/OCSetupHlp.iss diff --git a/win32/OCSetupHlp.iss b/win32/OCSetupHlp.iss deleted file mode 100644 index a7fea2692..000000000 --- a/win32/OCSetupHlp.iss +++ /dev/null @@ -1,719 +0,0 @@ -// -// OCSetupHlp.iss -// -------------- -// -// OpenCandy Helper Include File -// -// This file defines functions and procedures that need to -// be called from your main installer script in order to -// initialize and setup OpenCandy. -// -// Please consult the accompanying SDK documentation for -// integration details and contact partner support for -// assistance with any advanced integration needs. -// -// IMPORTANT: -// ---------- -// Publishers should have no need to modify the content -// of this file. If you are modifying this file for any -// reason other than as directed by partner support -// you are probably making a mistake. Please contact -// partner support instead. -// -// Copyright (c) 2008 - 2011 OpenCandy, Inc. -// - -[Code] - -//-------------------------------- -// OpenCandy types -//-------------------------------- - -#ifdef UNICODE -type OCWString = String; -type OCAString = AnsiString; -type OCTString = OCWString; -#else -type OCAString = String; -type OCTString = OCAString; -#endif - - - -//-------------------------------- -// OpenCandy definitions -//-------------------------------- - -// Size of strings (including terminating character) -#define OC_STR_CHARS 1024 - -// Values used with OCInit2A(), OCInit2W() APIs -#define OC_INIT_SUCCESS 0 -#define OC_INIT_MODE_NORMAL 0 -#define OC_INIT_MODE_REMNANT 1 - -// Values used with OCGetNoCandy() API -#define OC_CANDY_ENABLED 0 -#define OC_CANDY_DISABLED 1 - -// Offer types returned by OCGetOfferType() API -# define OC_OFFER_TYPE_NORMAL 1 -# define OC_OFFER_TYPE_EMBEDDED 2 - -// Values returned by OCGetBannerInfo() API -#define OC_OFFER_BANNER_FOUNDNEITHER 0 -#define OC_OFFER_BANNER_FOUNDTITLE 1 -#define OC_OFFER_BANNER_FOUNDDESCRIPTION 2 -#define OC_OFFER_BANNER_FOUNDBOTH 3 - -// User choice indicators returned by OCGetOfferState() API -#define OC_OFFER_CHOICE_ACCEPTED 1 -#define OC_OFFER_CHOICE_DECLINED 0 -#define OC_OFFER_CHOICE_NOCHOICE -1 - -// Values used with OCCanLeaveOfferPage() API -#define OC_OFFER_LEAVEPAGE_ALLOWED 1 -#define OC_OFFER_LEAVEPAGE_DISALLOWED 0 - -// Values used for OCGetAsyncOfferStatus() API -#define OC_OFFER_STATUS_CANOFFER_READY 0 -#define OC_OFFER_STATUS_CANOFFER_NOTREADY 1 -#define OC_OFFER_STATUS_QUERYING_NOTREADY 2 -#define OC_OFFER_STATUS_NOOFFERSAVAILABLE 3 - -// Values returned by OCRunDialog() API -#define OC_OFFER_RUNDIALOG_FAILURE -1 - -// Values returned by OCLoadOpenCandyDLL() API -#define OC_LOADOCDLL_FAILURE 0 - -// Values used with LogDevModeMessage() API -#define OC_DEVMSG_ERROR_TRUE 1 -#define OC_DEVMSG_ERROR_FALSE 0 - -// Values used in the sample installer script -// -// IMPORTANT: -// Do not modify these definitions or disable the warnings below. -// If you see warnings when you compile your script you must -// modify the values you set where you !insertmacro OpenCandyInit -// (i.e. in your .iss file) before releasing your installer publicly. -#define OC_SAMPLE_PUBLISHERNAME "Open Candy Sample" -#define OC_SAMPLE_KEY "748ad6d80864338c9c03b664839d8161" -#define OC_SAMPLE_SECRET "dfb3a60d6bfdb55c50e1ef53249f1198" - -// Compile-time checks and defaults -#if OC_STR_MY_PRODUCT_NAME == OC_SAMPLE_PUBLISHERNAME - #pragma warning "Do not forget to change the product name from '" + OC_SAMPLE_PUBLISHERNAME + "' to your company's product name before releasing this installer." -#endif -#if OC_STR_KEY == OC_SAMPLE_KEY - #pragma warning "Do not forget to change the sample key '" + OC_SAMPLE_KEY + "' to your company's product key before releasing this installer." -#endif -#if OC_STR_SECRET == OC_SAMPLE_SECRET - #pragma warning "Do not forget to change the sample secret '" + OC_SAMPLE_SECRET + "' to your company's product secret before releasing this installer." -#endif -#if Pos(LowerCase("\OCSetupHlp.dll"),LowerCase(OC_OCSETUPHLP_FILE_PATH)) == 0 - #pragma error "The definition OC_OCSETUPHLP_FILE_PATH does not use ""OCSetupHlp.dll"" for the file part." -#endif - -// OC_MAX_INIT_TIME is the maximum time in milliseconds that OCInit may block when fetching offers. -// Note that under normal network conditions OCInit may return sooner. Setting this value too low -// may reduce offer rate. Values of 5000 or greater are recommended. If you intend to override this -// default do so by defining it in your .iss file before #include'ing this header. Be certain to -// make OpenCandy partner support aware of any override you apply because this can affect your metrics. -#ifndef OC_MAX_INIT_TIME - #define OC_MAX_INIT_TIME 8000 -#endif - -// OC_INSERT_PAGE_AFTER is the PageID after which the OpenCandy offer screen should be inserted. -// If you intend to override this default do so by defining it in your .iss file before #include'ing this header. -#ifndef OC_INSERT_PAGE_AFTER - #define OC_INSERT_PAGE_AFTER "wpSelectTasks" -#endif - - -//-------------------------------- -// OpenCandy global variables -//-------------------------------- - -// IMPORTANT: -// Never modify or reference these directly, they are used -// completely internally to this helper script. - -var - - gl_OC_bAttached:Boolean; // Is the OpenCandy offer window attached? - gl_OC_objOCOfferPage: TWizardPage; // Handle to the offer page wizard page - gl_OC_bHasBeenInitialized: Boolean ; // Has the OpenCandy client been initialized? - gl_OC_bNoCandy: Boolean; // Is OpenCandy disabled? - gl_OC_bUseOfferPage: Boolean; // Should shown an offer? - gl_OC_bHasReachedOCPage: Boolean; // Has the user reached the OpenCandy offer page? - gl_OC_bProductInstallSuccess: Boolean; // Has the publisher product install completed succesfully? - gl_OC_bHasAdjustedPage: Boolean; // The the offer page window been adjusted? - - - -//----------------------------------------- -// OpenCandy external procedure definitions -//----------------------------------------- - -procedure _OCDLL_OCStartDLMgr2Download(); -external 'OCPRD379StartDLMgr2Download@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCLoadOpenCandyDLL():Integer; -external 'OCPRD379LoadOpenCandyDLL@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCInit(szPubId, szProdId, szSecret, szInstallLang:OCAString; bAsyncMode:Boolean; iMaxWait, iRemnant:Integer):Integer; -external 'OCPRD379Init2A@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -#ifdef UNICODE -function _OCDLL_OCInitW(wszPubId, wszProdId, wszSecret, wszInstallLang:OCWString; bAsyncMode:Boolean; iMaxWait, iRemnant:Integer):Integer; -external 'OCPRD379Init2W@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; -#endif - -function _OCDLL_OCGetBannerInfo(szTitle, szDesc:OCAString):Integer; -external 'OCPRD379GetBannerInfo@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -#ifdef UNICODE -function _OCDLL_OCGetBannerInfoW(wszTitle, wszDesc:OCWString):Integer; -external 'OCPRD379GetBannerInfoW@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; -#endif - -function _OCDLL_OCRunDialog(iHwnd:Integer): Integer; -external 'OCPRD379RunDialog@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCAdjustPage(iHwnd, iX, iY, iW, iH:Integer):Integer; -external 'OCPRD379InnoAdjust@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCRestorePage(iHwnd:Integer):Integer; -external 'OCPRD379InnoRestore@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCGetOfferState():Integer; -external 'OCPRD379GetOfferState@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCGetOfferType():Integer; -external 'OCPRD379GetOfferType@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCPrepareDownload():Integer; -external 'OCPRD379PrepareDownload@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCShutdown():Integer; -external 'OCPRD379Shutdown@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCDetach():Integer; -external 'OCPRD379Detach@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCSignalProductInstalled():Integer; -external 'OCPRD379SignalProductInstalled@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCSignalProductFailed():Integer; -external 'OCPRD379SignalProductFailed@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCGetAsyncOfferStatus(bWantToShowOffer:Boolean):Integer; -external 'OCPRD379GetAsyncOfferStatus@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCCanLeaveOfferPage():Integer; -external 'OCPRD379CanLeaveOfferPage@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -function _OCDLL_OCSetCmdLineValues(szValue:OCAString):Integer; -external 'OCPRD379SetCmdLineValues@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -#ifdef UNICODE -function _OCDLL_OCSetCmdLineValuesW(wszValue:OCWString):Integer; -external 'OCPRD379SetCmdLineValuesW@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; -#endif - -function _OCDLL_OCGetNoCandy():Integer; -external 'OCPRD379GetNoCandy@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -procedure _OCDLL_SetOCOfferEnabled(bEnabled:Boolean); -external 'OCPRD379SetOCOfferEnabled@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -procedure _OCDLL_LogDevModeMessage(szMessage:OCAString; iError, iFaqID:Integer); -external 'OCPRD379LogDevModeMessage@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; - -#ifdef UNICODE -procedure _OCDLL_LogDevModeMessageW(wszMessage:OCWString; iError, iFaqID:Integer); -external 'OCPRD379LogDevModeMessageW@files:OCSetupHlp.dll cdecl loadwithalteredsearchpath delayload'; -#endif - - -//------------------------------------------- -// OpenCandy runtime functions and procedures -//------------------------------------------- - -// -// _OpenCandyDevModeMsg -// -------------------- -// This function is internal to this helper script. Do not -// call if from your own code. -// -// The function code is intentionally unguarded with respect -// to gl_OC_bHasBeenInitialized and gl_OC_bNoCandy. Calling -// code is responsible for ensuring appropriate conditions. -// -// Parameters: -// -// tszMessage : Message to display -// bIsError : True if the message represents an error -// iFaqID : ID of the FAQ associated with the message, or 0 if there is no FAQ associated -// -// Usage: -// -// _OpenCandyDevModeMsg('This is an error with associated FAQ #500', true, 500); -// - -procedure _OpenCandyDevModeMsg(tszMessage: OCTString; bIsError: Boolean; iFaqID: Integer); -var - iError:Integer; -begin - if bIsError then - begin - iError := {#OC_DEVMSG_ERROR_TRUE}; - tszMessage := '{\rtf1 {\colortbl;\red0\green0\blue0;\red255\green0\blue0;}\cf2Status ERROR! \cf1' + tszMessage + '\par}'; - end - else - iError := {#OC_DEVMSG_ERROR_FALSE}; - - #ifdef UNICODE - _OCDLL_LogDevModeMessageW(tszMessage, iError, iFaqID); - #else - _OCDLL_LogDevModeMessage(tszMessage, iError, iFaqID); - #endif -end; - - - -// -// _OCEnabledAndReady -// ------------------ -// This function is internal to this helper script. Do not -// call if from your own code. -// - -function _OCEnabledAndReady(): Boolean; -begin - Result := gl_OC_bHasBeenInitialized and not gl_OC_bNoCandy; -end; - - - -// -// _OpenCandyInitInternal -// ---------------------- -// This procedure is internal to this helper script. Do not -// call if from your own code. Instead see OpenCandyInit -// and OpenCandyAsyncInit. -// - -procedure _OpenCandyInitInternal(tszPublisher, tszKey, tszSecret, tszLanguage:OCTString; bUseAsyncMode: Boolean; iInitMode:Integer); -var - i:Integer; - iRes:Integer; - tszDesc: OCTString; - tszTitle: OCTString; -begin - gl_OC_bAttached := false; - gl_OC_bHasBeenInitialized := false; - gl_OC_bNoCandy := false; - gl_OC_bUseOfferPage := false; - gl_OC_bHasReachedOCPage := false; - gl_OC_bProductInstallSuccess := false; - gl_OC_bHasAdjustedPage := false; - - // Load OpenCandy SDK DLL - try - iRes := _OCDLL_OCLoadOpenCandyDLL(); - except - iRes := {#OC_LOADOCDLL_FAILURE}; - end; - if {#OC_LOADOCDLL_FAILURE} = iRes then - gl_OC_bNoCandy := True - else - begin - - // Handle command line options and silent installations - for i := 0 to ParamCount() do - begin - #ifdef UNICODE - _OCDLL_OCSetCmdLineValuesW(ParamStr(i)); - #else - _OCDLL_OCSetCmdLineValues(ParamStr(i)); - #endif - - // OpenCandy is disabled during a silent installation - if WizardSilent() then - #ifdef UNICODE - _OCDLL_OCSetCmdLineValuesW('/NOCANDY'); - #else - _OCDLL_OCSetCmdLineValues('/NOCANDY'); - #endif - end; - - gl_OC_bNoCandy := {#OC_CANDY_DISABLED} = _OCDLL_OCGetNoCandy(); - - if not gl_OC_bNoCandy then - begin - #ifdef UNICODE - if {#OC_INIT_SUCCESS} = _OCDLL_OCInitW(tszPublisher, tszKey, tszSecret, tszLanguage, bUseAsyncMode, {#OC_MAX_INIT_TIME}, iInitMode) then - #else - if {#OC_INIT_SUCCESS} = _OCDLL_OCInit(tszPublisher, tszKey, tszSecret, tszLanguage, bUseAsyncMode, {#OC_MAX_INIT_TIME}, iInitMode) then - #endif - begin - gl_OC_bHasBeenInitialized := true; - tszTitle := StringOfChar(' ',{#OC_STR_CHARS}); - tszDesc := StringOfChar(' ',{#OC_STR_CHARS}); - #ifdef UNICODE - case _OCDLL_OCGetBannerInfoW(tszTitle, tszDesc) of - #else - case _OCDLL_OCGetBannerInfo(tszTitle, tszDesc) of - #endif - {#OC_OFFER_BANNER_FOUNDTITLE}: tszDesc := ''; - {#OC_OFFER_BANNER_FOUNDDESCRIPTION}: tszTitle := ''; - {#OC_OFFER_BANNER_FOUNDNEITHER}: - begin - tszTitle := ''; - tszDesc := ''; - end; - end; - gl_OC_objOCOfferPage := CreateCustomPage({#OC_INSERT_PAGE_AFTER}, tszTitle, tszDesc); - end; - end; - end; -end; - - - -// -// OpenCandyInit (Deprecated) / OpenCandyAsyncInit -// ----------------------------------------------- -// Performs initialization of the OpenCandy DLL -// and checks for offers to present. -// -// Parameters: -// -// tszPublisher : Your publisher name (will be provided by OpenCandy) -// tszKey : Your product key (will be provided by OpenCandy) -// tszSecret : Your product secret (will be provided by OpenCandy) -// tszLanguage : The installation language as an ISO 639-1 Alpha-2 Code -// iInitMode : The operating mode. Pass OC_INIT_MODE_NORMAL for normal operation -// or OC_INIT_MODE_REMNANT if OpenCandy should not show offers. Do not -// use iInitMode to handle /NOCANDY, this is done automatically for you. -// -// Usage (Using sample values for internal testing purposes only): -// -// procedure InitializeWizard; -// var -// OCtszInstallerLanguage: OCTString; -// begin -// // Translate language from the value of the "Name" -// // parameter assigned in the "[Languages]" section -// // into ISO 639-1 Alpha-2 codes for the OpenCandy API -// OCtszInstallerLanguage := ActiveLanguage(); -// if(OCtszInstallerLanguage = 'default') then -// OCtszInstallerLanguage := 'en'; -// OpenCandyAsyncInit('{#OC_STR_MY_PRODUCT_NAME}', '{#OC_STR_KEY}', '{#OC_STR_SECRET}', OCtszInstallerLanguage, {#OC_INIT_MODE_NORMAL}); -// end; -// - -procedure OpenCandyAsyncInit(tszPublisher, tszKey, tszSecret, tszLanguage:OCTString; iInitMode:Integer); -begin - if not (gl_OC_bNoCandy or gl_OC_bHasBeenInitialized) then - _OpenCandyInitInternal(tszPublisher, tszKey, tszSecret, tszLanguage, true, iInitMode); -end; - -procedure OpenCandyInit(tszPublisher, tszKey, tszSecret, tszLanguage:OCTString; iInitMode:Integer); -begin - if not (gl_OC_bNoCandy or gl_OC_bHasBeenInitialized) then - _OpenCandyInitInternal(tszPublisher, tszKey, tszSecret, tszLanguage, false, iInitMode); -end; - - - -// -// GetOCOfferStatus -// ----------------- -// Allows you to determine if an offer is currently available. This is -// done automatically for you before the offer screen is shown. Typically -// you do not need to call this function from your own code directly. -// -// The offer status is placed on the stack and may be one of: -// {#OC_OFFER_STATUS_CANOFFER_READY} - An OpenCandy offer is available and ready to be shown -// {#OC_OFFER_STATUS_CANOFFER_NOTREADY} - An offer is available but is not yet ready to be shown -// {#OC_OFFER_STATUS_QUERYING_NOTREADY} - The remote API is still being queried for offers -// {#OC_OFFER_STATUS_NOOFFERSAVAILABLE} - No offers are available -// -// When calling this function you must indicate whether the information returned -// will be used to decide whether the OpenCandy offer screen will be shown, e.g. -// if the information may result in a call to SetOCOfferEnabled. This helps -// to optimize future OpenCandy SDKs for better performance with your product. -// -// Usage: -// -// // Test if OpenCandy is ready to show an offer. -// // Indicate the result is informative only and does not directly -// // determine whether offers from OpenCandy are enabled. -// if {#OC_OFFER_STATUS_CANOFFER_READY} = GetOCOfferStatus(false) then -// - -Function GetOCOfferStatus(bDeterminesOfferEnabled: Boolean): Integer; -begin - if _OCEnabledAndReady() then - Result := _OCDLL_OCGetAsyncOfferStatus(bDeterminesOfferEnabled) - else - Result := {#OC_OFFER_STATUS_NOOFFERSAVAILABLE}; -end; - - - -// -// SetOCOfferEnabled -// ----------------- -// Allows you to disable the OpenCandy offer screen easily from your -// installer code. Note that this is not the recommended method - you -// ought to determine during initialization whether OpenCandy should be -// disabled and specify an appropriate mode when calling OpenCandyInit -// or OpenCandyAsyncInit in that case. If you must use this method please -// be sure to inform the OpenCandy partner support team. Never directly -// place logical conditions around other OpenCandy functions and macros because -// this can have unforseen consequences. You should call this procedure only -// after calling OpenCandyInit / OpenCandyAsyncInit. -// -// Usage: -// -// // This turns off offers from the OpenCandy network -// SetOCOfferEnabled(false); -// - -procedure SetOCOfferEnabled(bEnabled: Boolean); -begin - if _OCEnabledAndReady() then - _OCDLL_SetOCOfferEnabled(bEnabled); -end; - - - -// -// OpenCandyShouldSkipPage() -// ------------------------- -// -// This function needs to be called from the ShouldSkipPage Inno script -// event function so that Inno Setup can determine whether the OpenCandy -// offer page should be displayed. The function returns true if the -// current page is the OpenCandy offer page and no offer is to be -// presented. -// -// Usage: -// -// function ShouldSkipPage(PageID: Integer): Boolean; -// begin -// Result := false; // Don't skip pages by default -// -// -// if OpenCandyShouldSkipPage(PageID) then -// Result := true; -// end; -// - -function OpenCandyShouldSkipPage(CurPageID: Integer) : Boolean; -begin - Result := false; - if _OCEnabledAndReady() then - if CurPageID = gl_OC_objOCOfferPage.ID then - begin - if (not gl_OC_bUseOfferPage) and (not gl_OC_bHasReachedOCPage) then - gl_OC_bUseOfferPage := {#OC_OFFER_STATUS_CANOFFER_READY} = _OCDLL_OCGetAsyncOfferStatus(true); - gl_OC_bHasReachedOCPage := true; - Result := not gl_OC_bUseOfferPage; - end; -end; - - - -// -// OpenCandyCurPageChanged() -// ------------------------- -// This function needs to be called from CurPageChanged() Inno script -// event function so that the OpenCandy offer page is displayed correctly. -// -// Usage: -// -// procedure CurPageChanged(CurPageID: Integer); -// begin -// OpenCandyCurPageChanged(CurPageID); -// end; -// -procedure OpenCandyCurPageChanged(CurPageID: Integer); -begin - if _OCEnabledAndReady() and gl_OC_bUseOfferPage then - begin - if (CurPageID <> gl_OC_objOCOfferPage.ID) and gl_OC_bAttached then - begin - _OCDLL_OCDetach(); - gl_OC_bAttached := false; - end; - - if (CurPageID = gl_OC_objOCOfferPage.ID) and not gl_OC_bAttached then - begin - _OCDLL_OCAdjustPage(gl_OC_objOCOfferPage.Surface.Handle,8,60,480,250); - if {#OC_OFFER_RUNDIALOG_FAILURE} <> _OCDLL_OCRunDialog(gl_OC_objOCOfferPage.Surface.Handle) then - gl_OC_bAttached := true - else - gl_OC_bUseOfferPage := false; - end; - end; -end; - - - -// -// OpenCandyNextButtonClick() -// -------------------------- -// This function needs to be called be called from the NextButtonClick() -// Inno script event function so that Inno Setup does not allow an end user -// to proceed past the OpenCandy offer screen in the event that the user -// must make a selection and hasn't yet done so. The function returns false -// if the user should not be allowed to proceed. -// -// Usage: -// -// function NextButtonClick(CurPageID: Integer): Boolean; -// begin -// Result := true; // Allow action by default -// if not OpenCandyNextButtonClick(CurPageID) then -// Result := false; -// end; -// - -function OpenCandyNextButtonClick(CurPageID: Integer): Boolean; -begin - Result := true; - if _OCEnabledAndReady() and gl_OC_bUseOfferPage and (CurPageID = gl_OC_objOCOfferPage.ID) then - begin - // user must make a selection - if {#OC_OFFER_LEAVEPAGE_DISALLOWED} = _OCDLL_OCCanLeaveOfferPage() then - Result := false - else - begin - _OCDLL_OCRestorePage(gl_OC_objOCOfferPage.Surface.Handle); - Result := true; - end; - end; -end; - - - -// -// OpenCandyBackButtonClick() -// -------------------------- -// This function should be called from BackButtonClick() Inno script -// event function. It restores the layout of the installer window after -// an OpenCandy offer page has been displayed. -// -// Usage: -// -// function BackButtonClick(CurPageID: Integer): Boolean; -// begin -// Result := true; // Allow action by default -// OpenCandyBackButtonClick(CurPageID); -// end; -// - -procedure OpenCandyBackButtonClick(CurPageID: Integer); -begin - if _OCEnabledAndReady() and gl_OC_bUseOfferPage and (CurPageID = gl_OC_objOCOfferPage.ID) then - _OCDLL_OCRestorePage(gl_OC_objOCOfferPage.Surface.Handle); -end; - - - -// -// _OpenCandyExecOfferInternal() -// ----------------------------- -// This procedure is internal to this helper script. Do not -// call if from your own code. -// - -procedure _OpenCandyExecOfferInternal(); -begin - _OCDLL_OCPrepareDownload(); - if _OCDLL_OCGetOfferState() = {#OC_OFFER_CHOICE_ACCEPTED} then - _OCDLL_OCStartDLMgr2Download(); -end; - - - -// -// OpenCandyCurStepChanged() -// ------------------------- -// This should be called from CurStepChanged() Inno script event function. -// It handles necesary operations at the various different stages of the setup, -// such as installing any offer the user may have accepted. -// -// Usage: -// -// procedure CurStepChanged(CurStep: TSetupStep); -// begin -// OpenCandyCurStepChanged(CurStep); -// end; -// - -procedure OpenCandyCurStepChanged(CurStep: TSetupStep); -begin - if _OCEnabledAndReady() then - begin - // ssInstall is just before the product installation starts - if (CurStep = ssInstall) and gl_OC_bUseOfferPage then - if {#OC_OFFER_TYPE_EMBEDDED} = _OCDLL_OCGetOfferType() then - _OpenCandyExecOfferInternal(); - - // ssDone is just before Setup terminates after a successful install - if CurStep = ssDone then - begin - if gl_OC_bUseOfferPage and ({#OC_OFFER_TYPE_NORMAL} = _OCDLL_OCGetOfferType()) then - _OpenCandyExecOfferInternal(); - gl_OC_bProductInstallSuccess := true; - _OCDLL_OCSignalProductInstalled(); - end; - end; -end; - - - -// -// OpenCandyDeinitializeSetup() -// ---------------------------- -// This should be called from DeinitializeSetup() Inno script event function. -// It signals product installation success or failure, and cleans up the -// OpenCandy library. -// -// Usage: -// procedure DeinitializeSetup(); -// begin -// OpenCandyDeinitializeSetup(); -// end; -// - -procedure OpenCandyDeinitializeSetup(); -begin - if _OCEnabledAndReady() then - begin - if not gl_OC_bProductInstallSuccess then - _OCDLL_OCSignalProductFailed(); - if gl_OC_bUseOfferPage then - begin - if gl_OC_bAttached then - begin - _OCDLL_OCDetach(); - gl_OC_bAttached := false; - end; - _OCDLL_OCShutdown(); - end; - end; -end; - - - -//---------------------------------------------------------------------------// -// END of OpenCandy Helper Include file // -//---------------------------------------------------------------------------// \ No newline at end of file