void RegisterIconSaver(struct SaveIconReg *reg)
RegisterIconSaver()
has to
tell Hollywood whether it wants to register another icon saver. Hollywood
will pass a pointer to a struct SaveIconReg
to this function.
This structure looks like this:
struct SaveFormatReg { ULONG CapsMask; [out] ULONG FormatID; [in/out] STRPTR FormatName; [out] }; struct SaveIconReg { struct SaveFormatReg hdr; }; |
Your implementation has to do the following with the individual structure members:
CapsMask:
HWSAVEICNCAPS_MORE:
RegisterIconSaver()
again so that
you can register another saver. If you don't want to register another saver,
don't set this flag.
FormatID:
FormatID
you have specified
must not be changed or you will break compatibility with applets or executables
that have been compiled with previous versions. If you are registering more
than one icon saver using HWSAVEICNCAPS_MORE
, you can look at the
FormatID
member to tell how many times Hollywood has already called
RegisterIconSaver()
because FormatID
will contain the identifier
of the last icon saver you registered. If FormatID
is 0, then this
is the first call to RegisterIconSaver()
. Note that it is not recommended
to keep your own counter because Hollywood might call RegisterIconSaver()
multiple times, i.e. it might first loop over RegisterIconSaver()
to determine
how many icon savers there are in total and then it might loop over
RegisterIconSaver()
again to actually register their names.
FormatName:
#ICNFMT_
prefix must not be included
in the string you pass. Hollywood will add this automatically, i.e. if you
pass the string "TESTFORMAT" here, Hollywood will make your icon saver
available under the constant #ICNFMT_TESTFORMAT
.
struct SaveIconReg
to be filled out by your implementation