SkunkWorks Source
While I don't consider SkunkWorks to 
be "Open Source" in any down-with-copyrights, information-must-be-free 
ideological sense, I've included the source in the distribution package for a 
number of purely practical reasons:
- There's a fair amount of paranoia about since the demise of 
ACScript.  I want users to be able to study the source, verify that it contains 
no password-stealing Trojans or other malicious code, and build themselves a 
clean, safe executable for their own use.
- If a protocol change breaks something, I don't want to be the 
sole source for fixes.  More people equipped to solve problems and publish the 
solutions means less pressure on me come patch day.
- To be brutally honest, macro newbies with pirated drain 
scripts are not the intended audience of this tool, and I don't intend to offer 
them a lot of support.  SkunkWorks is meant to be an industrial-strength 
scripting platform for people who know what they're doing and don't mind 
rolling up their sleeves.  Though I've tried to be fairly thorough in the 
console and API documentation, 
consider the source the ultimate authority on what the program does and how it does 
it.  You don't have to be a VB wizard to use SkunkWorks, but the support you get 
from me will be based on the assumption that you've at least tried to find answers 
for yourself.
Source is installed into the SkunkWorks\Source folder, and 
includes four Visual Basic projects, two VB project groups, and one Visual C++ 
project:
- SkunkWorks.vbp builds the SkunkWorks API COM component 
(Skapi.dll).  This project gets the coveted "SkunkWorks" name mainly so that its 
progids come out as SkunkWorks.something.
- SWConsole.vbp builds the SkunkWorks console (SWConsole.exe).
- SkunkWorks.vbg is a project group combining the API and 
the console.  Since the console depends on the API, I find it convenient to edit 
and debug them together in one VB environment.
- SWPlugin.vbp builds the SkunkWorks plugin (SWPlugin.dll).
- SWFilter.vbp builds the SkunkWorks netfilter (SWFilter.dll).
- SWPlugin.vbg is a project group combining the plugin 
and the filter.  Again, the intertwined nature of these two components makes it 
easier to work on them together rather than separately.
- SwxScript.dsw is a Visual C++ project that builds a 
component call SwxScript.dll.  When I finally got fed up with the limitations 
of the MS Script Control, I wrote this component to replace it.  Its main 
advantages are better line number reporting on errors, the ability to reliably 
stop a runaway script, and script debugger support.
Note that if you want to build SwxScript.dll, you will need 
the headers and library files contained in Microsoft's Scriptng.exe, which you 
can download from 
this 
Knowledge Base article.
If all you want to do is rebuild your own Skapi.dll on patch day, the installed source should meet your 
needs.  If you're seriously interested in tinkering, however, you may want to enroll 
in the SkunkWorks 
project on SourceForge.net.
CVS setup
This section describes how to set up anonymous, read-only access to 
the SkunkWorks CVS repository.  This will enable you to customize your version of 
SkunkWorks and automatically maintain your local changes across new releases.  It 
will not enable you to upload changes back into the mainline development source.  
For information on how to become an official SkunkWorks developer with upload 
privileges, contact me by email.
I'm going to assume you're already a registered SourceForge user 
and have downloaded and installed WinCVS.  If not, see the SourceForge site documentation 
for information on how to do that.
Here's my recommended sequence for setting up a CVS-enabled 
SkunkWorks build environment on your disk:
- Download and install the latest SkunkWorks release, if you 
haven't already done so.
- Create a new folder, e.g. C:\SkunkWorksDev, for SkunkWorks 
development.
- Copy *.dll from your SkunkWorks installation folder to 
SkunkWorksDev.
- In SkunkWorksDev, rename Skapi.dll to SkapiCompat.dll, and 
SWFilter.dll to SWFilterCompat.dll.
- Start WinCVS.  Under Admin 4 
Preferences, specify the following:
	
	
	| Authentication: | pserver | 
	| Path: | /cvsroot/skunkworks | 
	| Host Address: | cvs.sourceforge.net | 
	| User Name: | anonymous | 
	| CVSROOT: | anonymous@cvs.sourceforge.net:/cvsroot.skunkworks | 
	
- In WinCVS, browse to your SkunkWorksDev folder.  There are four CVS 
modules available for checkout under the SkunkWorks project, as follows:
	
	
	
		| Source | The main SkunkWorks source. | 
	
		| Libraries | The script libraries and samples included in 
		the SkunkWorks install package. | 
	
		| Docs | The SkunkWorks documentation. | 
	
		| Installer | Files needed for building and packaging a SkunkWorks 
		installer. | 
	
	
Use Create 4 Checkout module in WinCVS to 
check out each module in turn.  Place the checked-out modules under your SkunkWorksDev 
folder.  You needn't check out all of them, only the ones you're interested in.  This 
probably includes Source and perhaps Libraries if you want to customize SkunkNav, for 
instance.  Docs you might want to check out for reference even if you don't plan on 
writing any documentation.  Installer is really of interest only to official SkunkWorks 
release technicians and can safely be ignored by anybody else.
- If you haven't already done so, download Scriptng.exe 
and extract it into your Visual C++ Include folder (except for Ad1.lib, which 
goes in you VC++ Lib folder).  You will need these headers and libraries in 
order to build SwxScript.dll.  (If you don't have VC++ installed, you can skip 
this step.)
- After checking out the modules, it's time to do a build.  Open 
SwxScript.dsw in Visual C++.  (If you don't have VC++ installed, you can skip this 
step.)  On the Build menu, Set Active Configuration to Win32 Release MinDependency, 
then Build SwxScript.dll.  Exit VC++.
- Open CallPfn.dsw in Visual C++.  On the Build menu, Set Active 
Configuration to Win32 Release, then Build CallPfn.dll.  Exit VC++.
- Open SkunkWorksDev\Source\SWPlugin.vbg in Visual Basic and Make 
Project Group (on the File Menu).  Make sure "Use Default Build Options" is checked, 
and click Build.  When the build is finished, close VB.  Choose Yes if it asks you 
to save changes.
- Do the same with SkunkWorksDev\Source\SkunkWorks.vbg.  If you get a 
dialog asking whether you want to Break or Preserve compatibility, choose Preserve.  
When the build is finished, save and close as before.
You should now have a working SkunkWorks installation in your 
SkunkWorksDev folder.