code: private void checkDirectoryEntry(final DirectoryEntry dir, final OutlookMessage msg)
  			throws IOException {
  		// we iterate through all entries in the current directory
  		for (final Iterator<?> iter = dir.getEntries(); iter.hasNext(); ) {
  			final Entry entry = (Entry) iter.next();
  
  			// check whether the entry is either a directory entry or a document entry
  
  			if (entry.isDirectoryEntry()) {
  				final DirectoryEntry de = (DirectoryEntry) entry;
  				// outlookAttachments have a special name and have to be handled separately at this point
  				if (de.getName().startsWith("__attach_version1.0")) {
  					parseAttachment(de, msg);
  				} else if (de.getName().startsWith("__recip_version1.0")) {
  					// a recipient entry has been found (which is also a directory entry itself)
  					checkRecipientDirectoryEntry(de, msg);
  				} else {
  					// a directory entry has been found. this node will be recursively checked
  					checkDirectoryEntry(de, msg);
  				}
  			} else if (entry.isDocumentEntry()) {
  				// a document entry contains information about the mail (e.g, from, to, subject, ...)
  				final DocumentEntry de = (DocumentEntry) entry;
  				checkDirectoryDocumentEntry(de, msg);
  			} /* else {
  				// any other type is not supported
  			} */
  		}
  	}
docs: Recursively parses the complete .msg file with the help of the POI library. The parsed information is put into the {@link OutlookMessage} object.
  
  @param dir The current node in the .msg file.
  @param msg The resulting {@link OutlookMessage} object.
  @throws IOException Thrown if the .msg file could not be parsed.