Working in C++, using GDAL and OGR: Depending on what the user has supplied for image input, I need to output point (or other) shape files in the same projection as the input raster images. The output shape files must be readable by ESRI as defined to be in the same projection as the input image. We are working with many input images and output shape files, so the projection process must be automated. How do I best transfer the input GDAL projection information to create a corresponding output shape file of the same projection? Do I have to go to OGR and use well-known text protocols to output the shape file? Can I instead use the GDAL projection information to write out the shape file using GDAL somehow?
Get the projection reference from the input GDALDataset:
That is using the C API, and I don't know if it's perfect, from memory.
This is more of a comment, but it is hard to format code in the comments...
With the OGR Python bindings, I write out a .prj file after outputting the shapefile. Note the MorphToESRI() function to translate the SRS WKT to ESRI's flavor. In the code below, latlong is a OSR SpatialReference object.
I am guessing that there are similar methods in the C# bindings.