Filtering PrivateMsg types by "sent" or "inbox" I'm wondering what approach programmatically I should take when displaying message links that are either sent to the user loading the list, or sent out to other users.

Using some modifications to the example code listed at http://drupal.org/node/624528, I've loaded all unread and read messages regardless of author:

foreach ($query-&gt;execute() as $key =&gt; $thread) {

if ($count &lt;= 25) {
                        // Generate a link with the subject as title that points to the view message page.
                        $items[] = array(
                            'data' =&gt; '&lt;a href="' . 'messages/view/' . $thread-&gt;thread_id . '"&gt;' .
                            '&lt;div class="messages-icon"&gt;&lt;/div&gt;' .
                            '&lt;div class="messages-from"&gt;' . $username . "&lt;/div&gt;" .
                            '&lt;div class="messages-subject"&gt;' . $thread-&gt;subject . "&lt;/div&gt;" .
                            '&lt;div class="messages-date"&gt;' . format_date($thread-&gt;last_updated, 'short') . "&lt;/div&gt;&lt;/a&gt;",
                            'class' =&gt; array($class),
                            'id' =&gt; $key
                        );
                        $count++;
                    } else {
                        break;
                    }


and the output is done through a theme() call. I'm seeing that messages sent return null in $thread->participant. Would this be a sufficient use case to track for sent messages?
From the page that you linked to:

// Replace 'inbox' with 'sent' to display sent messages or 'list' to display all messages.
$query = _privatemsg_assemble_query('list', $user, 'inbox');


Note that the privatemsg_filter module needs to be enabled for that to work.