What's Wrong With This Code?


i've been trying test automaton plugin work.  builds correctly no errors or warnings yet when attempt use it, no results.  no errors either.  intended copy > make new layer > paste.  code below.  sample code used makeselectfill plugin modified old 6.0 sdk along using older copy of visual c++ can open project.  appreciated.

 

//-------------------------------------------------------------------------------

#include <stdio.h>//defines sprintf

#include "piuget.h"//defines piugetinfo, not used in makeselectfill

#include "pidefines.h"//defines __pimac__, __piwin__

#include "pigeneral.h"//defines kpsphotoshopcaller, kpsdoit

#include "spinterf.h"//defines kspinterfacecaller, kspinterfaceaboutselector,

                                                                                                               //kspinterfacestartupselector,

#include "spbasic.h"//defines spbasicsuite

#include "spaccess.h"//defines kspaccesscaller, kspaccessreloadselector,

                                                                                                               //kspaccessunloadselector, not used in makeselectfill

#include "piactions.h"//defines psactiondescriptorprocs, psactionreferenceprocs,

                                                                                                               //psactioncontrolprocs

#include "admbasic.h"//contains cross-platform alert dialogs, boxes,

                                                                                                               //file , directory dialogs, string conversions

#include "piusuites.h"//defines piusuitesacquire , piusuitesrelease

 

//-------------------------------------------------------------------------------

//          function prototypes.

//-------------------------------------------------------------------------------

 

dllexport spapi sperr pluginmain(const char* caller,

                                                                                const char* selector,

                                                                                const void* data );

 

//-------------------------------------------------------------------------------

//          globals -- define global variables plug-in scope.

//-------------------------------------------------------------------------------

 

 

spbasicsuite                              *sspbasic = null;// basic suite

 

 

//create pointers suites

psactiondescriptorprocs          *spsactiondescriptor = null;

psactionreferenceprocs          *spsactionreference = null;

psactioncontrolprocs          *spsactioncontrol = null;

psactionlistprocs                    *spsactionlist = null;

admbasicsuite                              *sadmbasic = null;

 

 

_acquirelist mysuites[] =

{

          kpsactiondescriptorsuite, kpsactiondescriptorsuiteversion, (void **)&spsactiondescriptor,

          kpsactionreferencesuite, kpsactionreferencesuiteversion, (void **)&spsactionreference,

          //note previous version of control suite used compatibility 5.5

          kpsactioncontrolsuite, kpsactioncontrolsuiteprevversion, (void **)&spsactioncontrol,

          kpsactionlistsuite, kpsactionlistsuiteversion, (void **)&spsactionlist,

          kadmbasicsuite, kadmbasicsuiteversion, (void **)&sadmbasic

};

 

 

//-------------------------------------------------------------------------------

//

//          pluginmain

//

//          calls plug-in module come through routine.

//          must placed first in resource. achieve this,

//          development systems require first routine

//          in source.

//

//          entrypoint "pascal void" macintosh,

//          "void" windows.

//

//-------------------------------------------------------------------------------

 

 

dllexport spapi sperr pluginmain(const char* caller, // calling

                                                                                const char* selector, // want

                                                                                const void* data )// message

{

          sperr error = kspnoerror;

          spmessagedata *basicmessage = null;

 

          // messages contain spmessagedata*

          basicmessage = (spmessagedata *) data;

          sspbasic = basicmessage->basic;

 

 

          // acquire global suite pointers now

          error = piusuitesacquire(sspbasic,

                                   mysuites,

                                   sizeof (mysuites) / sizeof (_acquirelist));

          if (error) return error;

 

          // check sp interface callers

          if (sspbasic->isequal((char*)caller, kspinterfacecaller))

          {

                    if (sspbasic->isequal((char*)selector, kspinterfaceaboutselector))

                    {

 

 

                    }

          }

 

 

          // photoshop calling

          if (sspbasic->isequal((char*)caller, kpsphotoshopcaller))

          {

                    // 1 , message

                    if (sspbasic->isequal((char*)selector, kpsdoit))

                    {

 

                    }

          }

 

 

          // clean up, free memory

          piusuitesrelease(sspbasic,

                           mysuites,

                           sizeof (mysuites) / sizeof (_acquirelist));

          return error;

 

 

}/*end pluginmain*/

 

 

//-------------------------------------------------------------------------------

//

//          test plugin

//

//          plugin used test.

//          functions copy > make new layer > paste

//

//

//-------------------------------------------------------------------------------

sperr copy(void)

{

     piactiondescriptor result = null;

     sperr error = kspnoerror;

     error = spsactioncontrol->play(&result, eventcopy, null, plugindialogsilent);

     if (error) goto returnerror;

 

 

returnerror:

     if (result != null) spsactiondescriptor->free(result);

     return error;

}

 

 

//make new layer here//

 

 

sperr makelayer(void)

{

          piactiondescriptor descriptor = null;

          piactionreference reference = null;

          piactiondescriptor result = null;

          sperr error = kspnoerror;

 

 

          error = spsactiondescriptor->make(&descriptor);

          if (error) goto returnerror;

                    // move top of routine!

                    error = spsactionreference->make(&reference);

                    if (error) goto returnerror;

                    error = spsactionreference->putclass(reference,classlayer);

                    if (error) goto returnerror;

                    error = spsactiondescriptor->putreference(descriptor,keynull,reference);

                    if (error) goto returnerror;

                    error = spsactioncontrol->play(&result,eventmake,descriptor,plugindialogsilent);

                    if (error) goto returnerror;

returnerror:

                    if (result != null) spsactiondescriptor->free(result);

                    if (descriptor != null) spsactiondescriptor->free(descriptor);

                    if (reference != null) spsactionreference->free(reference);

                    return error;

}

 

 

//end make new layer//

 

 

//start paste//

 

 

sperr paste(void)

{

piactiondescriptor result = null;

sperr error = kspnoerror;

error = spsactioncontrol->play(&result,eventpaste,null,plugindialogsilent);

if (error) goto returnerror;

returnerror:

if (result != null) spsactiondescriptor->free(result);

return error;

}

 

 

//end paste//

 

 

 

 

// windows plug-ins need dllmain

 

 

#ifdef __piwin__

bool apientry dllmain( handle hmodule,

                                                          dword ul_rearson_for_call,

                                                          lpvoid lpreserved )

{

          return true;

}

#endif

almost 500 views , no replies?



More discussions in Photoshop Plugin and Companion App SDK


adobe

Comments

Popular posts from this blog

Falang and too many redirects - Joomla! Forum - community, help and support

Infinite loop detected in JErrorInfinite loop detected in JError - Joomla! Forum - community, help and support

logged out from joomla! - Joomla! Forum - community, help and support