• Adding items to the Send To context menu

    Posted on December 16th, 2008 Alan No comments

    Right-drag the application icon or application shortcut icon from the start menu to your desktop and choose "Create shortcut here" from the menu that  displays when you release the right mouse button.  Rename the shortcut as appropriate.

    In Vista, paste the following into a Windows Explorer addressbar:

    %APPDATA%\Microsoft\Windows\SendTo

    Move the shortcut you recreated to the SendTo folder you just opened up.

  • How to enjoy Home Videos

    Posted on December 16th, 2008 Alan No comments

    I recently cut up and edited 3 1/2 hours of video shot in 2000-2001.  This includes Kristen’s birth and some of the cutest footage of the kids when they were young.

    My goal was to create small clips that can be viewed one at a time or in a playlist.  This has the best chance of friend and family being interested in watching.  So much of what ends up at home  is LONG footage where only a fraction is actually viewable outside of the immediate family.

    My second goal was for the final files to be viewable on Windows, Mac, and an  XBOX.  I would like to able to  browse and play video in our Living room  on our HDTV which has an XBOX hooked up to it.

    I”m struggling to find just the right settings/format/codec to use that will  result in good  quality and not take up tons  of space.  I had captured the original footage from  tape using a USB capture device and software which created a 7Gig MPEG-PS file.  For now, I am exporting to MPEG2 which appears to be the best balance of quality size and compatibilty.  However my XBOX360 can’t stream MPEG2 for some reason so I’ve also been exporting to MPEG4.  This streams on my XBOX but is highly compressed and not very good quality

    I use Sony Vegas to cut up and create individual clips.  I export to MainConcept MPEG-2.

    Jeff describes his setup to playback Blu-ray from his HD.

    Converting video for your video iPod

  • Debugging LoadModule

    Posted on December 16th, 2008 Alan No comments

    I just finished spending a couple days troubleshooting a problem with a Win32 non-mfc DLL failing a LoadLibrary().  Actually, the post build step for my DLL ran regsvr32 to register it and it started failing with the following message:

    Regsvr32Failure

    RegSvr32.exe calls the following Win32 functions in this order:

    • OleInitialize
    • LoadLibrary to load the DLL
    • DllRegisterServer or DllUnregisterServer
    • FreeLibrary
    • OleUninitialize

    A common reason for failure is that there are dependent DLL's missing.  Dependency Walker is good for checking this.  Unfortunately, this lead me down a rat hole when I saw that there was a complaint about MSVCR90D.dll.  It also led me to erroneously try various things to modify the manifest used and the Code Generation…Library Used settings. 

    I was unable to break in the DLLMain of the library so I assumed there was a problem in the way I was building  it.  I even installed the latest Vista SP1 and Visual  Studio SP1 to try to make the "build" problem go away.

    Ultimately,  what worked was for me to create a simple program that called LoadLibrary() on my dll.  I then set the  Debug…Exceptions options to catch all  exceptions.  As soon as the test program called  LoadLibrary() (on my debug build) it went right to the  line of  code that was causing an "Invalid access to  memory",  just like the message said!  I guess that's the danger of giving too much information in a message, users will  erroneously choose the wrong symptom.

    This worked because the problem  was in some  code that was called during the construction of a C++ object, which was instantiated prior to calling the main entry point of the DLL.

    Lesson learned:  When a module fails on startup,  check your global  objects' construction code, and don't forget to turn on catching all exceptions in the debugger!