Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
main.c
/* |
File: main.c |
Contains: Code to generate a QuickTime movie with a QuickTime video effect in it. |
Written by: Scott Kuechle |
(based heavily on QuickTime SDK QTShowEffect sample code by Tim Monroe) |
Copyright: © 1999 by Apple Computer, Inc. All rights reserved |
Change History (most recent first) |
<1> 9/25/99 srk first file |
<2> 10/19/99 srk changed cross fade effect to explode effect |
*/ |
#if TARGET_OS_WIN32 |
// Windows headers |
#define STRICT |
#include <windows.h> |
// QTML stuff |
#include "QTML.h" |
#endif |
#ifndef __FONTS__ |
#include <Fonts.h> |
#endif |
#ifndef __IMAGECODEC__ |
#include <ImageCodec.h> |
#endif |
#ifndef __MOVIES__ |
#include <Movies.h> |
#endif |
#ifndef __MOVIESFORMAT__ |
#include <MoviesFormat.h> |
#endif |
#ifndef __MEDIAHANDLERS__ |
#include <MediaHandlers.h> |
#endif |
#ifndef __NUMBERFORMATTING__ |
#include <NumberFormatting.h> |
#endif |
#ifndef __QUICKTIMECOMPONENTS__ |
#include <QuickTimeComponents.h> |
#endif |
#ifndef __ENDIAN__ |
#include <Endian.h> |
#endif |
#ifndef __GESTALT__ |
#include <Gestalt.h> |
#endif |
#ifndef __FIXMATH__ |
#include <FixMath.h> |
#endif |
#ifndef __MACWINDOWS__ |
#include <MacWindows.h> |
#endif |
#ifndef __PRINTING__ |
#include <Printing.h> |
#endif |
#ifndef __SCRIPT__ |
#include <Script.h> |
#endif |
#ifndef __SOUND__ |
#include <Sound.h> |
#endif |
#ifndef _STRING_H |
#include <string.h> |
#endif |
#ifndef _STDLIB_H |
#include <stdlib.h> |
#endif |
#ifndef __TEXTUTILS__ |
#include <TextUtils.h> |
#endif |
#ifndef __TRAPS__ |
#include <Traps.h> |
#endif |
#ifndef __RESOURCES__ |
#include <Resources.h> |
#endif |
#ifndef __FILETYPESANDCREATORS__ |
#include <FileTypesAndCreators.h> |
#endif |
#include "Main.h" |
#include "QTEffects.h" |
// miscellaneous constants |
#define kMsgDialogRsrcID 129 |
#define kMsgItemID 3 |
#if TARGET_OS_WIN32 |
short gAppResID; |
#endif |
#if TARGET_OS_MAC |
//////////////////// |
// |
// Main (Mac) |
// |
//////////////////// |
void main( void ) |
{ |
Movie movie; |
InitMacToolbox (); |
QuickTimeInit(); |
/* Create our effects movie */ |
movie = QTEffects_CreateEffectsMovie (); |
} |
#else if TARGET_OS_WIN32 |
//////////////////// |
// |
// Main (Windows) |
// |
//////////////////// |
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, |
LPSTR lpszCmdLine, int nCmdShow) |
{ |
Movie movie; |
QuickTimeInit(); |
/* Create our effects movie */ |
movie = QTEffects_CreateEffectsMovie (); |
#if TARGET_OS_WIN32 |
if (gAppResID != -1) |
CloseResFile(gAppResID); |
#endif |
return 0; |
} |
#endif |
#if TARGET_OS_MAC |
//////////////////// |
// |
// InitMacToolbox |
// Standard Macintosh Toolbox Initialization |
// |
//////////////////// |
static void InitMacToolbox (void) |
{ |
InitGraf (&qd.thePort); |
InitFonts (); |
InitWindows (); |
InitMenus (); |
TEInit (); |
InitDialogs (nil); |
} |
#endif |
//////////////////// |
// |
// QuickTimeInit |
// Initialize QuickTime here |
// |
//////////////////// |
static void QuickTimeInit (void) |
{ |
OSErr err; |
#if TARGET_OS_WIN32 |
char szAppPathName[256]; |
FSSpec resFSSpec; |
err = InitializeQTML(0L); |
CheckError (err, "InitializeQTML error" ); |
GetModuleFileName(0, szAppPathName, 256); |
NativePathNameToFSSpec(szAppPathName, &resFSSpec, kFullNativePath); |
gAppResID = FSpOpenResFile(&resFSSpec, fsRdWrPerm); |
#endif |
err = EnterMovies (); |
CheckError (err, "EnterMovies error" ); |
} |
//////////////////// |
// |
// Utils_Macintosh_DisplayMsg |
// Displays error messages for Macintosh sample code. |
// |
//////////////////// |
#if TARGET_OS_MAC |
static void Macintosh_DisplayMsg(char *msg) |
{ |
DialogPtr theDlog; |
Handle item = NULL; |
Rect box; |
theDlog = GetNewDialog(kMsgDialogRsrcID, NULL, (WindowPtr)-1); |
if (theDlog != NULL) |
{ |
short itemType; |
GetDialogItem(theDlog, kMsgItemID, &itemType, &item, &box); |
if (item != NULL) |
{ |
short itemHit; |
SetDialogItemText(item, c2pstr(msg)); |
ModalDialog(NULL, &itemHit); |
DisposeDialog(theDlog); |
p2cstr((StringPtr)msg); /* restore C-string */ |
} |
} |
} |
#endif |
//////////////////// |
// |
// Utils_Win32_DisplayMsg |
// Displays error messages for Win95/NT sample code. |
// |
//////////////////// |
#if TARGET_OS_WIN32 |
static void Win32_DisplayMsg(char *msg) |
{ |
MessageBox(NULL, msg, "", MB_OK); |
} |
#endif |
//////////////////// |
// |
// CheckError |
// Displays error message if an error occurred |
// |
//////////////////// |
void CheckError(OSErr error, char *msg) |
{ |
if (error == noErr) |
{ |
return; |
} |
if (strlen(msg) > 0) |
{ |
#if TARGET_OS_MAC |
Macintosh_DisplayMsg(msg); |
#else if TARGET_OS_WIN32 |
Win32_DisplayMsg(msg); |
#endif |
ExitToShell(); |
} |
} |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-02-25