When working with the Nokia Imaging SDK 1.0 using native code you will sooner or later run into a situation where you have to create an instance of a class implementing the Windows::Storage::Streams::IBuffer interface. Unfortunately WP8 does not provide a class you can simply use to get such an instance and neither does the Imaging SDK.
While there is a BufferFactory in the Nokia::InteropServices Namespace you can only use it if you have a class implementing the ILockableMemory interface, which we don't. Also the descriptions of the Lock/Unlock methods indicates a connection with actual Interop functionality involving the Garbage Collector. Implementation would also be difficult given that the interface does not provide a way to pass in/out the actual memory pointer. On the managed side this Namespace also contains Extension methods to create an IBuffer from integer arrays but this unfortunately is not available from native code.
So currently the only way to get such a Buffer is to implement it ourselves which involves working with the Windows Runtime C++ Template Library (WRL) which is quite complex to work with if you're not used to COM or ATL programming. Most implementations I've seen so far are based on this one: http://stackoverflow.com/questions/1...t-ibuffer-in-c
While we of course can get custom effects written in native code working by using our custom implementation of an IBuffer it takes quite a bit of research to get to this point. I assume that some way to create Buffers in native code is already implemented in the Imaging SDK so I hope that it can be surfaced in the public APIs easily.
I am facing this issue when implementing the Nokia::Graphics::Imaging::ICustomEffect interface but have seen it mentioned in other cases as well.