Though for later/other projects I really want to get into this message systems but I'v been goggling like crazy and I haven't found any good example other than:
sendMessage(message);
Well, you can consider there to be 2 types of messaging - direct, and broadcast.
The direct kind appears to be what EWClay has shown you, eg. pEntity->SendMessage(parent, Message_SetPosition(p));
Personally I don't see much use for that. pEntity still needs to have enough knowledge of its parent to know that it can handle a SetPosition message, so it's not like you've avoided a dependency between the two components - you've just moved it out of the code and into your head. You need to know that these 2 components work together for your system to work correctly. So you may as well have the simpler syntax of getting a reference to the component and accessing it directly. Also, and how does the message passing system handle error situations when the message isn't handled? Or the arguments were wrong for some reason? There don't seem to be any real benefits from this sort of approach, and many downsides (especially in a language like C++ where making new message types is laborious).
Broadcast messaging is a bit more useful. Situations can exist where you need any number of associated entities or components to consider acting a certain way - eg. your character makes a noise, so you broadcast a NoiseMadeAt(x,y) message so that NPCs can consider hunting you down or whatever. In that sort of system, you just call a function which iterates over all entities and their components to see if any of them want to handle that message. This is orthogonal to component-based systems however - broadcast messaging is useful for most games regardless of how they're implemented.