Updates to the Director XDK
This file serves as an index to the changes that were made to all parts of the XDK.
All newly defined interfaces have been documented using C++ syntax rather than the C syntax used in the earlier documentation.
Thanks to Glenn Picher,
Peter Vanags, pim, Jake Lamb, Audrey Mbogho, Kraig Mentor, Andrew Edwardson, Mauricio Piacentini, Tab Julius, CL, Laurent
Brigaut, Lucas Meijer, David Hooks and Eugene Shoustrov for XDK suggestions and bug fixes.
And thanks to any others from the mailing list mmxdk-l@lyris.macromedia.com whose name should appear here as well.
Changes made for the Director 11.0 XDK
27 January, 2008
This is in progress
Header file changes
- Make adjustments to win32/moatyedg.h so it works with UNICODE defined
- Add HandleDoubleClick method to MuiNotify class definition in muinotif.h
- Add constants kMuiDialogListSelChanged, kMuiDialogListDoubleClicked to muiinit.t
- Add thread safe checks for AddRef() and Release() in moaxtra.h and in all moatyedg.h files
- Add kClearMoaMmValue to xmmvalue.h
- Increase value of MOA_MAX_FILENAME constant in macMach/moatyedg.h and win32/moatyedg.h
- Add kMoaMmDictKey_FilterCaps and kMoaMmDictType_FilterCaps and kMoaMmErr_OperationNotAllowed to mmtypes.h
- Add and update bmfilters.h and filtercaps.h
- Adjust IMoaStreamHelper initializer in xstrmhlp.h so it does proper byte swapping for intel macintosh
- Change method name for MacShowWindow to MacXShowWindow in IMoaMmUtils and IMoaMmWndMac to avoid conflict with Macintosh system headers.
This change was needed in a few other places as well.
- driservc.h, moaxtra.h remove some obsolete macros and comments
- moaplat.h use appropriate header for either MachO or CFM
- New macMach/moatyedg.h header file for Mach-O development with Xcode;
Make some adjustments to moaplat.h and macMach/moatyedg.h;
Change BEGIN_INTERFACE macro in macMach/moatyedg.h
- driservc.h, drtypes.h, mmtypes.h, moastr2.h, moatry.h, moaxtra.h, xmoaexpt.h, xprgress.h
header file changes for Mach-O development with Xcode
- Update copyright notice to Adobe in header files
Examples folder changes
- Provide example filter xtra: TileFilter that shows a simple sprite filter
- New tool example, ComputerUser,
that demonstrates working with unicode text and movie editing
- Clean up some obsolete code in the skeleton projects
- Update notify.h and notify.cpp in Wacky Dialog with HandleDoubleClick method
- Use class version value for the internal version in all the example xtras.
This ensures the internal version is updated when the external version is changed.
- Some windows projects did not have their header files added to project's file list
- Xcode projects udpated to use a list of of exported functions and use the "strip" command for release builds
- Add project and support files for Xcode versions of all the example projects
- Update Wacky Dialog and Transition and DrAccess to do appropriate byte swapping on intel
- Update some macintosh calls in InkTest and DrAccess
- Update example.htm to mention Xcode projects and add proper info about guid generation on OSX
- Add html "mark of the web" to examples so they play in Windows Internet Explorer without the extra dialog
- Update copyright notice to Adobe in example source
Documentation changes
- Include some documentation about the Filter xtra interface in mmxfilter.htm, and some notes in a few other places
- Correct errors in description of GetLastFrameIndex and GetCurFrameIndex in drscracc.htm
- Cleaned up some odd HTML in drmovie2.htm, drscracc.htm,
mmutils2.htm and drcast.htm
- New section with a few notes about Unicode strings in Director notes.
- Add new constants to event table in Mui documentation
- Update some outdated information in the readme and docs/index files
- Add correct info about the GUID needed for IMoaDrPreferenceAccess access and
provide notes about what happens when accessing preference values that have not been set.
- Note that IMoaProgressBox is only available in Director Authoring.
- Add information about cross-platform publishing with Mach-O xtras.
- Add tip about specifying full path to executable when debugging with Xcode to the readme file
- Note that IMoaDrRTAccess and IMoaDrAlphaData are obsolete - they were last implemented in Director 6.
- Change MacShowWindow() to MacXShowWindow() in IMoaMmWndMac
to avoid conflict with Macintosh system headers
- Fixed typos in CallHandler section in drmovie.htm,
drmovie2.htm,
ValueToStringPtr description, streaming code snippet
- Updated some incorrect notes about MovieContext in drmoviex.htm
- Fix broken links: near the bottom of the readme file; in mmref/mmimage.h
- Document what the CountElements() API returns for a non-list parameter
- Describe how to find out if a MoaMmValue references an image object in mmvalue.htm
- Add missing cast properties link in drcast.htm and
add notes about memberCount in the prop description section
- Add a code snippet that shows how to determine the sound volume
- Add more items to the xdk.css file
- Included xdk.css in all html files and removed all the old, scattered font tags so the css settings are used everywhere.
You should be able to successfully assign your own favorite fonts by editing the css file.
- Updated copyright notice date and copyright line in all html files
Support file changes
- Add updated version of XSupport library for both platforms
- Add updated version of the SplitFile tool.
- Add Xcode version of the XSupport library: libXSupport.a
Changes made for the DMX 2004 10.1 XDK Update
4 October, 2004
Documentation changes
- Added an index that lists all the interfaces and methods; (or without html frames: index)
- Added documentation for the IMoaMmXValue and IMoaMmXValueUtils interfaces
- Add xdk.css file so that CSS can be used when updating documentation
- Fixed up some typos, formatting and link errors in several documentation files: mmlist.htm,
cross-platform projector section,
introduction, mmdgc5.htm, mmprval.htm, index.htm
- The Moa FAQ about class and interface IDs cross-references the more detailed description of GUIDs
- Add sample code to get the directory for an xtra to the Moa FAQ
- Add description of technique to get the interface for an xtra member to mmdgtg.htm
Support files changes
- Add "save-and-publish" disabled versions of Director 10.1 for debugging purposes. Version 10.0 is still provided in a v10.0 sub-directory.
Examples folder changes
- Add XArray scripting example that uses the IMoaMmXValue and IMoaMmXValueUtils interface
Changes made for the DMX 2004 XDK
15 June, 2004
Documentation changes
- Fix inconsistency in description of pArgs parameter for CallHandler in drcstmm.htm,
drmovie.htm, drmovie2.htm, drplayer.htm
- Add description of techniques for working with NULLs in strings to mmdgtg.htm
- Clarification added in mmxsprta.htm: windows may get destroyed and re-created
during an actor's existance
- Added important information about global references to scripting xtras in mmdgc3.htm
and in mmdgtg.htm
- Added MoaMmValue initialization description in mmtypndx.htm
- More places in mmtypndx.htm mention that Macintosh Graphic Contexts now provide
a WindowRef rather than a WindowPtr
- Fixed up some severely messed-up html in drtypndx.htm file; removed outdated table
of notifications from this file; added
scriptExecutionStyle
movie property
- Fixed some html layout problems in mmdgtg.htm; the code samples in this file all use C++
syntax now
- Updated
IMoaAppInfo
documenting runMode values and some additional
constants used with GetInfo
- Added discussion of cross-platform projector issues for Xtras
- Describe how to get GUID values on Macintosh OSX in moadgc2.htm
- Add notification IDs:
NID_DrNStageWindowOpen, NID_DrNStageWindowClose
- Fix error in description of
Commit()
method of score access - must
call after EndUpdate()
, not before
- Update readme file:
- Add notes about using MFC on windows.
- Add notes about debugging with Director MX 2004
- Correct some grammar errors in section about CodeWarrior
- Updated discussion of latest version of CodeWarrior
- Updated release information to include Director MX 2004
- Removed section about using Otto for debugging on OSX since you can make your own projectors with Director MX now
- Fixed description of SetTempPath in mfpthnm.htm
- Updated copyright notice date
- Repaired broken links in several files
Header file changes
- byteswap.h optimized some routines for powerpc processor
- driservc.h added notification IDs for collapse/reveal events (for windows in authoring)
- dversion.h fix version number mismatch in one of the #defines
- mixdatob.h added a constant for flash
- mmixscrp.h removed lots of xtra blank lines
- mmtypes.h added
kMoaMmEvent_StageWindowChanged
, kMoaMmMaxXtraMessageTable
constants
- moastdif.h add constant
kMoaAppInfo_ConfigFolder
- moastdif.h added comments about
RunMode
value for Plugin
- moaxtra.h change definition of
EXTERN_GUID
on windows
- muippage.h added
kMuiDictKey_PropPageEntry
constant
- win32/moatyedg.h update to get header files from the PlatformSDK on windows
- xmachelp.h support for OSX in
GMoaMmGCSaver
class
- xmath.h change local
#defines
to avoid namespace conflicts
- xmath.h add some
(double)
casts to XPointLength
- xmmvalue.h add
kVoidValueMoaMmValueInitializer
- xmoaexpt.h add a couple of macros
- xwinhelp.h fix memory leak in
CWinClipSetAndRestore
Examples folder changes
- Fix BeepTool example source, adding a delay so multiple beeps work
- Lots of fixes in the DrAccess example
- Fix version check in dracreg.cpp - it assumed main version number was one digit long, so it did not
work in version "10"
- Change sprite used for score access section in DrAccess.dir so both handlers use the same sprite
- Call Commit() method in score editing sample code
- Fix lingo errors in 3 scripts in DrAccess.dir
- Fix some coding errors that caused a crash
- Fixed some problems with the Macintosh resources in tallwide.rsrc
- Added OSX Carbon targets for all the rest of the example and skeleton projects now that the authoring application is
available on OSX
- Updated some of the descriptive text in examples.htm and added change notes for
this release.
Support files changes
- Removed Otto files from OSX folder since developers can now create OSX projectors using Director MX or MX 2004
- Updated Macintosh OSX libs to the most current version of cfmruntime.lib, xsupport.lib.
- Added SplitFile tool for Macintosh. Helpful for preparing xtras for cross-platform projectors.
- Add "save-and-publish" disabled versions of Director for debugging purposes. See the readme
file for information about using this.
Changes made for the D8.5 XDK
9 January, 2002
Documentation changes
- Added section documenting xtra version information
- Fixed several broken links within the documentation
- Added notify.htm showing how to use custom notifications
- Added a section on file streaming to mmdgtg.htm
- Earlier D7 and D8 change notes merged with the documentation. Detailed changes are listed and linked from this file.
- D6 change notes merged with this file - the documentation already had D6 changes integrated.
- Added some missing properties and fix formatting in drtypndx.htm
- Updated readme.htm file with latest development environment information, including Macintosh OS X.
- Added examples.htm describing the example xtras that are included with the XDK
- Added mmvaluevector.htm to document the new vector/matrix value interface
- Added mmimage.htm to document the new image object interface
- Added notes about the example projects.
- Added section with information about creating Carbonized Xtras for Macintosh OS
X.
- Updated the Doc folder introduction
- Removed some bogus HTML from drtypndx.htm
- Removed old reference to multiple xtra folders and fixed up some formatting in mmdgc3.htm
- Added some information about new interfaces to mmdgc5.htm
- Noted that "quickdraw globals" aren't available in Macintosh OS X in moadgtg.htm,
mmdgtg.htm, mmtypndx.htm, mmutils2.htm
- For completeness, added authorware documentation previously included in the Director 6 / Authorware 4 XDK
Header file changes
- byteswap.h new in-line assembler versions of byte swapping routines for the powerpc processor.
- driservc.h has 3 new notification ids:
NID_DrNRewind, NID_DrNEnteringDebugger,
NID_DrNLeavingDebugger
- drtypes.h new error code
kMoaDrErr_MediaNotReady
- dversion.h updated
- m3dtypes.h new file defining two new lingo internal types
- macppc/dversion.r new file to specify a version resource for macintosh xtras
- mivect3d.h new file defining interface for vector <---> Lingo value conversion,
IMoa3dVectorValueUtils
- mmiimage.h new file for the image object callback interface,
IMoaMmImage
- mmtypes.h new constants:
kMoaMmValueType_3dVector, kMoaMmValueType_3dTransform, kMoaMmErr_VectorValueExpected,
kMoaMmErr_MatrixValueExpected.
Added comment about quickdraw globals not available in Carbon.
- mmiservc.h add missing PIMoaMmCuePointCallback declaration
- moaxtra.h updated for CodeWarrior 6. Replaced use of DECLARE_INTERFACE_ in a couple of places to avoid a crash
with the latest version of Visual C++.
- mxcf.r commented out
TMPL
resource and moved file to /include/macppc/ directory
- xmachelp.h fixed a problem due to GrafPtr / WindowRef differences in Carbon
- win32/dversion.rc new file to specify a version resource for windows xtras
- xmmlist.h new methods
AppendSymbolValue, SetSymbolValue, GetSymbolValue
- xmuiui.h, xwinui.h, xmacui.h new argument to
DrawFrame
and define frame options
- xsupport.h removed support for Macintosh VBL tasks
- Updated copyright notice and removed some antique Macintosh 68K references in the header files.
Examples folder changes
- cscript.cpp fixed invalid pointer.
- dracscrp.cpp added switch for m_sendSpriteMsg. Fixed crash in saveMedia cause by duplicate releases. Fixed crash
in GetScoreSpriteProp caused by overwriting one symbol with another.
- dracreg.cpp added "sendSpriteMsg" to msgTable.
- all Macintosh projects updated to CodeWarrior 6 format. Projects can be converted to CW7 and built as well. All
projects renamed with .mcp extension. All the skeleton projects changed to use .r files instead of .rsrc for resources.
Added Classic Release & Debug targets for each project. Added Carbon Release and Debug targets for projects that are marked
as safe for shockwave: ValueChecker, EventTest, Inktest, OvalSprite, Wacky Dialog Asset, TallWide.
- all skeleton projects were updated to have version resources for macintosh and windows
- ginterro.cpp - changed macintosh code to use system calls for the dialog since MUI isn't availalble at startup
when the interrogate routine is called
- examples.htm added to describe features of each example xtra
- draccess.dsp windows debug build for draccess.x32 didn't succeed due to an error in this file (DrAccess example)
- dracscrp.cpp fix crash in castmemprop routines due to lack of error checking (DrAccess example)
- fixed a lot of problems and comleted missing examples, added comments to DrAccess access example
- ovalasst.cpp fix OS X crash after GetProp call due to incorrect error return (OvalSprite example)
- ovalasst.cpp added support for the asset "image" property (OvalSprite example)
- dialog.mcp, dialog.pfx.pch, asset.pfx.pch were missing from the D8 Mac XDK, although they were present in the
D8 Win XDK (WackyDialog example)
- twasset.cpp minor updates were needed to compile with latest Apple header files and as a Carbon project (TallWide
example)
- Movies: some movies were reverted to D7 or D8 version files, some updated to D8.5 version files. See the examples
notes for more details. Added html wrappers for some of the sample movies.
- current.sts file deleted (Greeting example)
- Script/ValueChecker new example project showing how to access different types of lingo values from a scripting
xtra. Also, this project defines xtra version resource for each platform. Uses new vector/matrix/value interface routines.
- Script/Skeleton2/ new simplified template project for building a scripting xtra. also includes version resource
for both platforms
- XDKXtras folder added this folder. It contains already built example Xtras
Support files changes
- all libs updated to the D8.5 versions
- cfmruntime.lib, xsupport.lib Added Macintosh OSX version of this library.
- stdint.c, cstdint added to runtime/Mac/include directory so projects build with CodeWarrior 7
- Added files needed to run Otto on OSX.
Changes made for the D8 XDK
- driservc.h
NID_DrAnimationState
New Notification State event ID for the
IMoaNotification
interface.
IMoaDrSound2
interface added to extend IMoaDrSound
with the
PauseSound
method
IMoaDrPlayer
change type of one parameter for ResolveFileName
method
Property Inspector Panels
documentation on creating or modifying
Property Inspector panels.
View Description List File Syntax
describes syntax for Property Inspector
VDL files.
- mmuippage.h new file defines several new Property Inspector related items
IMuiPropertyPage
interface added for defining Property pages in the Property
Inspector for Asset Xtras
IMuiPropertyPageTarget
property panel support interface added.
IMuiPropertyPageInstance
property panel support interface added.
kMuiDictKey_PropPageEntry
added to the Registry Dict for new
Property page
- moaxtra.h macros changed to work with VC 6 instead of VC 5
- muiInit.h updated with new comment.
- mixsvc.h >new constant
MoaAgentInfoFlags_Hidden.
Some new receptor error constants.
- mixagent.h new interface
IMoaStreamReader
; new constants kReaderRegKey_WillScanForHeader,
kReaderRegKey_Hidden
- muiinit.t added
kMuiWindowPosition_None
- muiitem.h, muiprop.h, muisym.t added support for editable popup
- drtypes.h new constants:
kMoaDrErr_ImageExpected, kMoaDrImgMediaFlags_DontTrimWhiteEdges
- mmtypes.h new constants:
kMoaMmEvent_IME, kMoaMmEventMask_IME, kMoaMmValueType_Other, kMoaMmErr_NotIMoaMmXValue,
kMoaMmErr_VectorValueExpected, kMoaMmErr_MatrixValueExpected
- dversion.h new file for specifying version numbers
- mmixval.h new file defining the interface for xtra defined lingo object types
- mixdataob.h new format names:
kMoaCfFormatName_Script, kMoaCfFormatName_MPEG3
- mixsnd.h new constant:
kWriterOptKey_PreferredBitsSample
- moastdif.h new enum value:
kMoaAppInfo_OSLanguage
- xclassver.h now uses dversion.h to specify the version number
- xmachelp.h, macppc/moatyedg.h changes for latest Macintosh headers
- xmath.h new macros
MoaFixedToFloat, MoaFloatToFixed, ULongToMoaFixed, MoaFixedToULong
- xsupport.h new XDebuggerMessage for debugging aid
- Examples The projects in the Examples folder have been updated to work with Metrowerks CodeWarrior 5 (Mac) and
Visual C++ (Win)
Changes made for the D7 XDK
- driservc.h
IMoaDrMovieStage
safe for shockwave thing??
- driservc.h
IMoaDrMovieStage
interface added for coordinate
transformations
- driservc.h
IMoaDrPreferenceAccess
interface added for author time
preferences
- driservc.h
IMoaDrMovieContext
interface added
IMoaDrMovieCursor
description was corrected
- mmtypes.h new "safeForShockwave" constants:
kMoaMmDictType_SafeForShockwave,
kMoaMmDictKey_SafeForShockwave, kMoaMmErr_UnsafeforShockwave
Starting with version 7, the Shockwave plugin will
only execute Xtras if they are marked as "Safe for Shockwave". Projectors and the authoring application continue to support
all xtras. See the Macromedia support site for more information about this.
- moa_try.h new file
IMoaDrCastmem
GetMedia description updated - alpha channel data
available for 32bit image members
Changes made for the D6 XDK
- Authorware now supports sprite asset Xtras.
- Scripting Xtras supersede Lingo Xtras, and now work in both Authorware and Director
- Tool Xtras now work in both Authorware and Director
- A variety of new notification events have been added
- Authorware now provides a mechanism for Xtras to define custom events
- Authorware now provides a mechanism for Xtras to save and retrieve themselves when a user stops and resumes a piece
- MOA File II provides additional support for accessing both local files and URLs
- The MUI XDK supports MUI-standard dialogs in Director
- Neither Director nor Authorware support the common system Xtras folder any longer
New interfaces
Moa Interfaces
IMoaNotificationClient |
Generalized notification mechanism from applications to Xtras |
IMoaNotification |
Generalized registration mechanism for subscribing to and receiving notification |
IMoaFile2 |
A (not-strict) superset of IMoaFile with features to support additional, more generalized behavior.
|
IMoaStream2 |
A superset of IMoaStream with features to support additional, more generalized behavior. |
IMoaPathName |
A platform-independent interface for getting and manipulating file paths and URLs. |
IMuiDialog |
A platform-independent interface for displaying and interacting with MUI-compliant dialog boxes. |
IMuiAlert |
A platform-independent interface for displaying MUI-compliant alert boxes. |
IMuiURL |
A platform-independent interface for displaying and opening files across the internet |
IMuiFile |
A platform-independent interface for displaying file open and file save dialogs. |
Multimedia Interfaces
IMoaMmUtils2 |
Support for printing to the scripting window, for getting graphics contexts, and for converting between
color values and the current system palette. |
IMoaMmValue |
Support for passing values between Xtra's C code and applications. |
IMoaMmWndMac |
Support for displaying and interacting with Macintosh-specific dialogs |
IMoaMmWndWin |
Support for displaying and interacting with Windows-specific dialogs. |
IMoaMmCuePointCallback |
Support for sending cue point notification to an application. |
IMoaMmXScript |
Support for cross-product Xtras that extend an application's native scripting language. |
IMoaMmXTool |
Support for cross-product Xtras that provide multiedia authoring support. |
IMoaMmAssetCallback2 |
Supersedes IMoaMmAssetCallback , adding media loading and unloading. |
Director Interfaces
IMoaDrSound |
Support for accessing Director's built in sound mixer to let an Xtra play sounds along with other sounds
in the score. |
IMoaDrPaletteAccess |
Support for accessing the platform-dependent media for Director's internal palettes. |
IMoaDrMovie2 |
Inherits from IMoaDrMovie, adds support for moving cast members. |
Authorware Interfaces
New Event Notification
The IMoaNotificationClient interface now provides a general mechanism for sending notification
from an application to an Xtra when specified events occur. A number of event notification IDs are defined in this XDK,
in two categories: Authorware Notification IDs and Director
Notification IDs.
Authorware Xtra Events
The IMoaAwEventSender interface provides a mechanism for Authorware Xtras to define events
which can be triggered from an Authorware piece.
Obsolete interfaces
The following interfaces, while supported in the Director 6/Authorware 4 XDK, are now obsolete. Please use the specified
replacements in their stead.
Copyright © 1995-2008 Adobe Macromedia Software LLC, Inc.