Here's a handy little tip for when you are building custom destination components or script destination components that enables you to log the number of processed rows.
Have you ever seen that handy little message that appears in your logs that tells you how many rows arrived at a destination component? It looks a little like this:
OnInformation,MachineName,UserName,TaskName,<SourceID-GUID>,<ExecutionID-GUID>,<Timestamp>,7/3/2007 12:08:01 PM,1074016267,0x,"component "ComponentName" (31)" wrote 987654 rows.
You'll still get the same message for your custom destinations and script destinations except that the number of rows will always be zero, regardless of how many rows were actually processed. If you would like to put something meanigful in there then it only takes one line of code. A call to IDTSComponentMetadata90.IncrementPipelinePerfCounter() is all that is required. Here's the code shown in the Input0_ProcessInputRow() method of the script component:

Dead easy right? OK, this component isn't actually doing anything with the data, but this is only for demo purposes. Running this package (which I have attached to this blog entry) results in:
Note the two circled areas. Our output does indeed include a message correctly stating the number of processed rows.
That's a useful little trick that's worth remembering.
-Jamie