diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/Processes.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/Processes.h')
| -rw-r--r-- | common/quicktime_win32/Processes.h | 790 |
1 files changed, 790 insertions, 0 deletions
diff --git a/common/quicktime_win32/Processes.h b/common/quicktime_win32/Processes.h new file mode 100644 index 0000000..4d89e28 --- /dev/null +++ b/common/quicktime_win32/Processes.h @@ -0,0 +1,790 @@ +/* + File: Processes.h + + Contains: Process Manager Interfaces. + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1989-2001 by Apple Computer, Inc., all rights reserved + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef __PROCESSES__ +#define __PROCESSES__ + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __FILES__ +#include <Files.h> +#endif + +#ifndef __TEXTCOMMON__ +#include <TextCommon.h> +#endif + +#ifndef __CFSTRING__ +#include <CFString.h> +#endif + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +/* type for unique process identifier */ +struct ProcessSerialNumber { + unsigned long highLongOfPSN; + unsigned long lowLongOfPSN; +}; +typedef struct ProcessSerialNumber ProcessSerialNumber; +typedef ProcessSerialNumber * ProcessSerialNumberPtr; +enum { + /* Process identifier - Various reserved process serial numbers */ + kNoProcess = 0, + kSystemProcess = 1, + kCurrentProcess = 2 +}; + +/* Definition of the parameter block passed to _Launch */ +/* Typedef and flags for launchControlFlags field*/ +typedef unsigned short LaunchFlags; +enum { + launchContinue = 0x4000, + launchNoFileFlags = 0x0800, + launchUseMinimum = 0x0400, + launchDontSwitch = 0x0200, + launchAllow24Bit = 0x0100, + launchInhibitDaemon = 0x0080 +}; + +/* Format for first AppleEvent to pass to new process. The size of the overall + buffer variable: the message body immediately follows the messageLength */ +struct AppParameters { + struct { + UInt16 what; + UInt32 message; + UInt32 when; + Point where; + UInt16 modifiers; + } theMsgEvent; + unsigned long eventRefCon; + unsigned long messageLength; +}; +typedef struct AppParameters AppParameters; +typedef AppParameters * AppParametersPtr; +/* Parameter block to _Launch */ +struct LaunchParamBlockRec { + unsigned long reserved1; + unsigned short reserved2; + unsigned short launchBlockID; + unsigned long launchEPBLength; + unsigned short launchFileFlags; + LaunchFlags launchControlFlags; + FSSpecPtr launchAppSpec; + ProcessSerialNumber launchProcessSN; + unsigned long launchPreferredSize; + unsigned long launchMinimumSize; + unsigned long launchAvailableSize; + AppParametersPtr launchAppParameters; +}; +typedef struct LaunchParamBlockRec LaunchParamBlockRec; +typedef LaunchParamBlockRec * LaunchPBPtr; +/* Set launchBlockID to extendedBlock to specify that extensions exist. + Set launchEPBLength to extendedBlockLen for compatibility.*/ +enum { + extendedBlock = 0x4C43, /* 'LC' */ + extendedBlockLen = sizeof(LaunchParamBlockRec) - 12 +}; + +enum { + /* Definition of the information block returned by GetProcessInformation */ + modeReserved = 0x01000000, + modeControlPanel = 0x00080000, + modeLaunchDontSwitch = 0x00040000, + modeDeskAccessory = 0x00020000, + modeMultiLaunch = 0x00010000, + modeNeedSuspendResume = 0x00004000, + modeCanBackground = 0x00001000, + modeDoesActivateOnFGSwitch = 0x00000800, + modeOnlyBackground = 0x00000400, + modeGetFrontClicks = 0x00000200, + modeGetAppDiedMsg = 0x00000100, + mode32BitCompatible = 0x00000080, + modeHighLevelEventAware = 0x00000040, + modeLocalAndRemoteHLEvents = 0x00000020, + modeStationeryAware = 0x00000010, + modeUseTextEditServices = 0x00000008, + modeDisplayManagerAware = 0x00000004 +}; + +/* + Record returned by GetProcessInformation + When calling GetProcessInformation(), the input ProcesInfoRec + should have the processInfoLength set to sizeof(ProcessInfoRec), + the processName field set to nil or a pointer to a Str255, and + processAppSpec set to nil or a pointer to an FSSpec. If + processName or processAppSpec are not specified, this routine + will very likely write data to whatever random location in memory + these happen to point to, which is not a good thing. + Note: The processName field may not be what you expect, especially if + an application has a localized name. The .processName field, if not NULL, + on return will contain the filename part of the executable file of the + application. If you want the localized, user-displayable name for an + application, call CopyProcessName(). + +*/ +struct ProcessInfoRec { + unsigned long processInfoLength; + StringPtr processName; + ProcessSerialNumber processNumber; + unsigned long processType; + OSType processSignature; + unsigned long processMode; + Ptr processLocation; + unsigned long processSize; + unsigned long processFreeMem; + ProcessSerialNumber processLauncher; + unsigned long processLaunchDate; + unsigned long processActiveTime; + FSSpecPtr processAppSpec; +}; +typedef struct ProcessInfoRec ProcessInfoRec; +typedef ProcessInfoRec * ProcessInfoRecPtr; +/* + Some applications assumed the size of a ProcessInfoRec would never change, + which has caused problems trying to return additional information. In + the future, we will add fields to ProcessInfoExtendedRec when necessary, + and callers which wish to access 'more' data than originally was present + in ProcessInfoRec should allocate space for a ProcessInfoExtendedRec, + fill in the processInfoLength ( and processName and processAppSpec ptrs ), + then coerce this to a ProcessInfoRecPtr in the call to + GetProcessInformation(). + Note: The processName field may not be what you expect, especially if + an application has a localized name. The .processName field, if not NULL, + on return will contain the filename part of the executable file of the + application. If you want the localized, user-displayable name for an + application, call CopyProcessName(). + +*/ +struct ProcessInfoExtendedRec { + unsigned long processInfoLength; + StringPtr processName; + ProcessSerialNumber processNumber; + unsigned long processType; + OSType processSignature; + unsigned long processMode; + Ptr processLocation; + unsigned long processSize; + unsigned long processFreeMem; + ProcessSerialNumber processLauncher; + unsigned long processLaunchDate; + unsigned long processActiveTime; + FSSpecPtr processAppSpec; + unsigned long processTempMemTotal; + unsigned long processPurgeableTempMemTotal; +}; +typedef struct ProcessInfoExtendedRec ProcessInfoExtendedRec; +typedef ProcessInfoExtendedRec * ProcessInfoExtendedRecPtr; +/* Record corresponding to the SIZE resource definition */ +struct SizeResourceRec { + unsigned short flags; + unsigned long preferredHeapSize; + unsigned long minimumHeapSize; +}; +typedef struct SizeResourceRec SizeResourceRec; +typedef SizeResourceRec * SizeResourceRecPtr; +typedef SizeResourceRecPtr * SizeResourceRecHandle; + +/* + * Summary: + * Options for ProcessInformationCopyDictionary + */ +enum { + + /* + * Return all information known about the application in the + * dictionary. + */ + kProcessDictionaryIncludeAllInformationMask = (long)0xFFFFFFFF +}; + +/* + Applications and background applications can control when they are asked to quit + by the system at restart/shutdown by setting these bits in a 'quit' ( 0 ) resource + in their application's resource fork. Applications without a 'quit' ( 0 ) will + be quit at kQuitAtNormalTime mask. + These options only function on Mac OS 9.x at this time. +*/ +enum { + kQuitBeforeNormalTimeMask = 1, + kQuitAtNormalTimeMask = 2, + kQuitBeforeFBAsQuitMask = 4, + kQuitBeforeShellQuitsMask = 8, + kQuitBeforeTerminatorAppQuitsMask = 16, + kQuitNeverMask = 32, + kQuitOptionsMask = 0x7F, + kQuitNotQuitDuringInstallMask = 0x0100, + kQuitNotQuitDuringLogoutMask = 0x0200 +}; + + +/* + * LaunchApplication() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM +#pragma parameter __D0 LaunchApplication(__A0) +#endif +EXTERN_API( OSErr ) +LaunchApplication(LaunchPBPtr LaunchParams) ONEWORDINLINE(0xA9F2); + + +#if CALL_NOT_IN_CARBON +/* + * LaunchDeskAccessory() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +LaunchDeskAccessory( + const FSSpec * pFileSpec, + ConstStr255Param pDAName) THREEWORDINLINE(0x3F3C, 0x0036, 0xA88F); + + +#endif /* CALL_NOT_IN_CARBON */ + +/* + * [Mac]GetCurrentProcess() + * + * Discussion: + * Return the canonical process serial number to the caller. + * + * All applications ( things which can appear in the Dock or which + * are not documents and are launched by the Finder or Dock ) on Mac + * OS 10 have a unique process serial number. This number is + * created when the application launches, and remains until the + * application quits. Other system services, like AppleEvents, use + * the ProcessSerialNumber to specify an application. + * + * During launch, every application 'checks in' with the Process + * Manager. Before this checkin, the application can not receive + * events or draw to the screen. Prior to Mac OS 10.2, this 'check + * in' happened before the applications's main() function was + * entered. In Mac OS 10.2 and later, this 'check in' does not + * happen until the first time the application calls a Process + * Manager function, or until it enters CFRunLoopRun() for the main + * runloop. This allows tools and other executables which do not + * need to receive events to link against more of the higher level + * toolbox frameworks, but may cause a problem if the application + * expects to be able to retrieve events or use CoreGraphics + * services before this checkin has occurred. + * + * An application can force the connection to the Process Manager to + * be set up by calling any Process Manager routine, but the + * recommended way to do this is to call GetCurrentProcess() to ask + * for the current application's PSN. This will initialize the + * connection to the Process Manager if it has not already been set + * up and 'check in' the application with the system. + * + * This function is named MacGetCurrentProcess() on non Macintosh + * platforms and GetCurrentProcess on the Macintosh. However, even + * Macintosh code can use the MacGetCurrentProcess() name since + * there is a macro which maps back to GetCurrentProcess(). + * + * Lastly, it is usually not necessary to call GetCurrentProcess() + * to get the 'current' process psn merely to pass it to another + * Process Manager routine. Instead, just construct a + * ProcessSerialNumber with 0 in highLongOfPSN and kCurrentProcess + * in lowLongOfPSN and pass that. For example, to make the current + * process the frontmost process, use ( C code follows ) + * + * ProcessSerialNumber psn = { 0, kCurrentProcess }; + * + * OSErr err = SetFrontProcess( & psn ); + * + * If you need to pass a ProcessSerialNumber to another application + * or use it in an AppleEvent, you do need to get the canonical PSN + * with this routine. + * + * Parameters: + * + * PSN: + * Pass in where the current application process serial number + * should be returned. + * + * Result: + * An operating system status code. + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +#if TARGET_OS_MAC + #define MacGetCurrentProcess GetCurrentProcess +#endif +EXTERN_API( OSErr ) +MacGetCurrentProcess(ProcessSerialNumber * PSN) THREEWORDINLINE(0x3F3C, 0x0037, 0xA88F); + + +/* + * GetFrontProcess() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetFrontProcess(ProcessSerialNumber * PSN) FIVEWORDINLINE(0x70FF, 0x2F00, 0x3F3C, 0x0039, 0xA88F); + + +/* + * GetNextProcess() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +GetNextProcess(ProcessSerialNumber * PSN) THREEWORDINLINE(0x3F3C, 0x0038, 0xA88F); + + +/* + * GetProcessInformation() + * + * Discussion: + * Fill in the provided record with information about the process + * with the provided process serial number. + * + * The caller must fill in the .processInfoLength field with the + * value sizeof ( ProcessInformationRecord ) before making this + * call. Also, the .processName field must point to either NULL or + * to a Str31 structure in the caller's memory space, and the + * .processAppSpec field must point to a FSSpec in the caller's + * memory space. + * + * If the caller does not care about the process name or the process + * application spec values, then setting those fields in the + * structure to NULL before this call means less work must be done + * to construct these values and so the call is more + * efficient. + * + * The processName field may not be what you expect, especially if + * an application has a localized name. The .processName field, if + * not NULL, on return will contain the filename part of the + * executable file of the application. If you want the localized, + * user-displayable name for an application, call + * CopyProcessName(). + * + * On Mac OS X, the processSize and processFreeMem fields are + * returned with the value 0. + * + * Parameters: + * + * PSN: + * Pass in the process serial number of the process to return + * information for. + * + * info: + * Pass in a structure where the information will be returned. + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +/* +This function has the same name as a Windows function. Since both functions are +extern "C" this is illegal. I'm not gonna comment out GetProcessInformation +in winbase.h, so change has to happen here. +EXTERN_API( OSErr ) +GetProcessInformation( + const ProcessSerialNumber * PSN, + ProcessInfoRec * info) THREEWORDINLINE(0x3F3C, 0x003A, 0xA88F); +*/ + +/* + * ProcessInformationCopyDictionary() + * + * Discussion: + * Return a CFDictionary containing information about the given + * process. This is intended to return a superset of the information + * returned by GetProcessInformation(), in more modern datatypes. + * + * Parameters: + * + * PSN: + * Pass in the process serial number of the process to return + * information for. + * + * infoToReturn: + * Pass in the value kProcessDictionaryIncludeAllInformationMask. + * + * Result: + * An immutable CFDictionaryRef containing these keys and their + * values. Keys marked with an '*' are optional. Over time more + * keys may be added. + * + * Key Name Type + * -------- ---- + * "PSN" CFNumber, kCFNumberLongLongType + * "Flavor" CFNumber, kCFNumberSInt32 + * "Attributes" CFNumber, kCFNumberSInt32 + * "ParentPSN" * CFNumber, kCFNumberLongLong + * "FileType" * CFString, file type + * "FileCreator" * CFString, file creator + * "pid" * CFNumber, kCFNumberLongType + * "LSBackgroundOnly" CFBoolean + * "LSUIElement" CFBoolean + * "IsHiddenAttr" CFBoolean + * "IsCheckedInAttr" CFBoolean + * "RequiresClassic" CFBoolean + * "RequiresCarbon" CFBoolean + * "LSUserQuitOnly" CFBoolean + * "LSUIPresentationMode" CFNumber, kCFNumberShortType + * "BundlePath" * CFString + * kIOBundleExecutableKey * CFString + * kIOBundleNameKey * CFString + * kIOBundleIdentifierKey * CFString + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available + * Mac OS X: in version 10.2 and later + */ +EXTERN_API( CFDictionaryRef ) +ProcessInformationCopyDictionary( + const ProcessSerialNumber * PSN, + UInt32 infoToReturn); + + +/* + * SetFrontProcess() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +SetFrontProcess(const ProcessSerialNumber * PSN) THREEWORDINLINE(0x3F3C, 0x003B, 0xA88F); + + + +/* + * Summary: + * Options for SetFrontProcessWithOptions + */ +enum { + + /* + * Activate the process, but bring only the frontmost non-floating + * window forward. If this option is not set, all process windows are + * brought forward. + */ + kSetFrontProcessFrontWindowOnly = (1 << 0) +}; + + +/* + * SetFrontProcessWithOptions() + * + * Discussion: + * Brings a process to the front of the process list and activates + * it. This is much like the SetFrontProcess API, though we allow + * more control here. Passing 0 for the options is equivalent to + * calling SetFrontProcess. Alternatively, you can pass + * kSetFrontProcessFrontWindowOnly, which will activate a process + * without bringing all of the process's windows forward (just the + * front window of the process will come forward). + * + * Parameters: + * + * inProcess: + * The process to make frontmost. + * + * inOptions: + * Any options you wish to specify. + * + * Result: + * An operating system status code. + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later + * Mac OS X: in version 10.2 and later + */ +EXTERN_API_C( OSStatus ) +SetFrontProcessWithOptions( + const ProcessSerialNumber * inProcess, + OptionBits inOptions); + + +/* + * WakeUpProcess() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +WakeUpProcess(const ProcessSerialNumber * PSN) THREEWORDINLINE(0x3F3C, 0x003C, 0xA88F); + + +/* + * SameProcess() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSErr ) +SameProcess( + const ProcessSerialNumber * PSN1, + const ProcessSerialNumber * PSN2, + Boolean * result) THREEWORDINLINE(0x3F3C, 0x003D, 0xA88F); + + +/* ExitToShell was previously in SegLoad.h*/ +/* + * ExitToShell() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 7.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( void ) +ExitToShell(void) ONEWORDINLINE(0xA9F4); + + +/* + LaunchControlPanel is similar to LaunchDeskAccessory, but for Control Panel files instead. + It launches a control panel in an application shell maintained by the Process Manager. +*/ +#if CALL_NOT_IN_CARBON +/* + * LaunchControlPanel() + * + * Availability: + * Non-Carbon CFM: in InterfaceLib 9.0 and later + * CarbonLib: not available + * Mac OS X: not available + */ +EXTERN_API( OSErr ) +LaunchControlPanel(const FSSpec * pFileSpec) THREEWORDINLINE(0x3F3C, 0x007B, 0xA88F); + + +#endif /* CALL_NOT_IN_CARBON */ + +/* + * GetProcessBundleLocation() + * + * Summary: + * Retrieve the filesystem location of the process bundle, or + * executable if unbundled. + * + * Discussion: + * Retrieves a reference to the filesystem location of the specified + * application. For an application that is packaged as an app + * bundle, this will be the app bundle directory; otherwise it will + * be the location of the executable itself. + * + * Parameters: + * + * psn: + * Serial number of the target process + * + * location: + * Location of the bundle or executable, as an FSRef + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.5 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +GetProcessBundleLocation( + const ProcessSerialNumber * psn, + FSRef * location); + + +/* + * CopyProcessName() + * + * Summary: + * Get a copy of the name of a process. + * + * Discussion: + * Use this call to get the name of a process as a CFString. The + * name returned is a copy, so the caller must CFRelease the name + * when finished with it. The difference between this call and the + * processName field filled in by GetProcessInformation is that the + * name here is a CFString, and thus is capable of representing a + * multi-lingual name, whereas previously only a mac-encoded string + * was possible. + * + * Parameters: + * + * psn: + * Serial number of the target process + * + * name: + * CFString representing the name of the process (must be released + * by caller with CFRelease) + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.5 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +CopyProcessName( + const ProcessSerialNumber * psn, + CFStringRef * name); + + +/************************************************************************* + * Process Visibility. + *************************************************************************/ +/* + * IsProcessVisible() + * + * Summary: + * Determines whether a particular process is visible or not. + * + * Discussion: + * Given a psn, this call will return true or false depending on + * whether or not the process is currently visible. + * + * Parameters: + * + * psn: + * Serial number of the process + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.5 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( Boolean ) +IsProcessVisible(const ProcessSerialNumber * psn) THREEWORDINLINE(0x3F3C, 0x005F, 0xA88F); + + +/* + * ShowHideProcess() + * + * Summary: + * Hides or shows a given process. + * + * Discussion: + * Given a psn, this call will hide or show the process specified in + * the psn parameter. You determine whether you would like to show + * or hide the process with the visible parameter. True passed into + * visible indicates you wish for the process to become visible. + * + * Parameters: + * + * psn: + * Serial number of the process + * + * visible: + * true = show process; false = hide process + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: in CarbonLib 1.5 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API( OSErr ) +ShowHideProcess( + const ProcessSerialNumber * psn, + Boolean visible) THREEWORDINLINE(0x3F3C, 0x0060, 0xA88F); + + + +/* Values of the 'message' parameter to a Control Panel 'cdev' */ +enum { + initDev = 0, /*Time for cdev to initialize itself*/ + hitDev = 1, /*Hit on one of my items*/ + closeDev = 2, /*Close yourself*/ + nulDev = 3, /*Null event*/ + updateDev = 4, /*Update event*/ + activDev = 5, /*Activate event*/ + deactivDev = 6, /*Deactivate event*/ + keyEvtDev = 7, /*Key down/auto key*/ + macDev = 8, /*Decide whether or not to show up*/ + undoDev = 9, + cutDev = 10, + copyDev = 11, + pasteDev = 12, + clearDev = 13, + cursorDev = 14 +}; + +/* Special values a Control Panel 'cdev' can return */ +enum { + cdevGenErr = -1, /*General error; gray cdev w/o alert*/ + cdevMemErr = 0, /*Memory shortfall; alert user please*/ + cdevResErr = 1, /*Couldn't get a needed resource; alert*/ + cdevUnset = 3 /* cdevValue is initialized to this*/ +}; + +/* Control Panel Default Proc */ + + + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=reset +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(pop) +#elif PRAGMA_STRUCT_PACK + #pragma pack() +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __PROCESSES__ */ + |